La función MessageBox por defecto tiene ese comportamiento, siempre que se le pase como parámetro el Handle de la ventana que se quiere bloquear. Por ejemplo:
Código Delphi
[-]
Messagebox(Handle,PChar('Hola mundo'),PChar('Titulo'),MB_OK);
Ahora bien, puede que no tengamos el Handle de la ventana o queremos bloquear todas las ventanas de la aplicación. Entonces lo haríamos de la siguiente manera:
Código Delphi
[-]
Messagebox(0,PChar('Hola mundo'),PChar('Titulo'),MB_OK or MB_TASKMODAL);