The Run Program command in MapBasic is a fire and forgot method, this means that it will lauch the application and the continue on with your MapBasic app logic. MapBasic has no knowledge of the state of the third party app or control over it.
My suggestions would be.
If stuck on a older version (<9.5) of MapInfo you will need to create a C++ dll with a form and call that from MapBasic so you have more control.
If you have anything over 9.5 you can create a form in .NET and open that from MapBasic as you would a normal MapBasic dialog giving you more control over the form and its state.