Bueno, hay varias formas interceptando mensajes, una puede ser la siguiente; En tu form modal define en la parte privada éste método:
Código Delphi
[-]
...
private
procedure OnPosChange(var Msg: TWmWindowPosChanging); message WM_WINDOWPOSCHANGING;
...
...
procedure TForm2.OnPosChange(var Msg: TWmWindowPosChanging);
begin
Msg.WindowPos.x := Left;
Msg.WindowPos.y := Top;
Msg.Result := 0;
end;
Con eso debería ser suficiente.