Nie znalazłem możliwości ustawienia w procesie alwaysOnTop (można w ogóle takie coś zrobić?), dlatego moje pytanie brzmi: jak uzyskać taki efekt na uruchamianym procesie?
Nie uzyskasz tego w ten sposób. Spod standardowej przenośnej Javy nie zrobisz tego.
Po pierwsze procesy nie mają nic wspólnego (albo bardzo niewiele) z podsystemem okien w systemie operacyjnym. Tak więc nawet na logikę nie tam należy szukać.
Po drugie program okienkowy w takim Swingu (w SWT podobnie) ma pełną kontrolę jedynie nad oknami utworzonymi przez siebie, w ograniczonym stopniu nad oknami kontrolowanymi pośrednio przez JVM, a nad oknami spoza JVM kompletnie żadnej. Przełączanie okien w wyniku ich otwierania i zamykania jest kontrolowane przez system operacyjny i przez natywne programy w Windows.
Jeżeli chcesz taką kontrolę uzyskać spod Javy, to jedyną pewną metodą jest użycie JNI lub JNA (dostęp przez kod rodzimy w C/C++). Prawdopodobnie istnieją klasy lub metody Suna, które mogą "mieszać" za pomocą Javy w systemie Windows tak jak może to zrobić każdy program w tym systemie (JavaSE jest rodzimym programem w Windows, tak jak każdy inny napisany w C++), ale kod ten jest zapewne schowany lub nie jest łatwo dostępny ponieważ kontroluje on wszystkie okna wszystkich programów w Javie. Być może kiedyś to się zmieni, ale na razie to tylko zgadywanie.
Co do rozwiązania Twojego problemu - jest prostsze wyjście. Tuż przed zainicjowaniem nowego procesu Twoja aplikacja musi się zablokować przeciwko jakimkolwiek działaniom użytkownika. Jeden sposób to wyrzucenie modalnego dialogu informującego u uruchamianiu innego procesu (aż do jego pełnego uruchomienia, albo nawet aż do jego zakończenia), drugi, to schowanie okna aplikacji przez setVisible(false) lub coś podobnego, trzeci i najgorszy to zminimalizowanie okna aplikacji.
Innym problemem będzie wykrywanie zakończenia procesu, który odpaliłeś. Ale to inny temat.