We used a workaround in our application to make a smooth transition from one monitor to another.
I think the problem is not so much as refresh time but the fact that refresh kicks in when crossing monitor boundary.
As a result user cannot continue moving the form (for refresh period) and this does not feel right.
For smooth transition we detect the start of crossing using WM_ENTERSIZEMOVE and WM_MOVING.
At that moment we ensure that the form does not update (e.g. WM_SETREDRAW) .
Once movement is finished (WM_EXITSIZEMOVE) we let the form update.
Still a lot of code gets executed even without refresh, so an additional trick was helpful.
In our case the content of the MainForm was on an embedded form, so on crossing we set embedded form invisible and without parent.
In that case it was not scaled so we avoided this on crossing.
After crossing was finished we reinstated content visibility and the parent, which finished the scaling.
To improve visual outlook we captured content onto scaled TImage and put it on top of the MainForm.
As a result only TImage gets quickly scaled on crossing and provides (possibly blurred) visual feedback until content finishes scaling and
is ready to show.