私の知る限り、それは不可能です。
Apple クラスリファレンスから:
NSApplication runModalForWindow:
このメソッドは、指定されたウィンドウのモーダル イベント ループを同期的に実行します。指定されたウィンドウを表示し、それをキーにして、実行ループを開始し、そのウィンドウのイベントを処理します。(ウィンドウを自分で表示する必要はありません。) アプリケーションがそのループにある間、ウィンドウに関連付けられていない限り、他のイベント (マウス、キーボード、またはウィンドウを閉じるイベントを含む) には応答しません。また、モーダル実行ループに関連付けられていないタスク (タイマーの起動など) も実行しません。つまり、このメソッドは、イベントを処理し、モーダル ウィンドウに関連付けられたアクション メソッドにディスパッチするのに十分な CPU 時間を消費します。
これにより、ウィンドウ A がキー ウィンドウになり、常にアプリの他のウィンドウの上に表示されます。これがモーダルウィンドウの仕組みだと思います。
NSPopover
別の方法として、ユーザーに対して明確に存在するが、アプリケーションを強制的にモーダル状態にしない を使用することを検討できます。
利用可能なさまざまなオプションに関するガイドラインについては、Apple ドキュメントのこのページを参照してください。