The MessageBox function places a dialog window on the screen. Theoretically it is possible to retrieve a handle to this window (e.g. with the FindWindow API function) and then change its position with the MoveWindow or SetWindowPos API functions.
After calling the MessageBox, Visual FoxPro (as one-process and one-thread application) stops and waits until this function returns. That means there is no way to run FindWindow and MoveWindow (as well as hooking a window) in parallel with the MessageBox window processing.
So either use an external module solution, or create your own MessageBox function mimicking the standard behaviour.