Man könnte die zweite Applikation als weitere Forms zu der ersten schreiben und mit parametern beim Starten entweder die erste oder die zweite Applikation starten.
Dann könnte man auch die "zweite" Applikation über shellexecute starten
Shellexecute(Handle, 'open', pchar(ExtractFilePath(Application.ExeName) + 'Pfad\Datei.exe \2'), nil, nil, SW_ShowNormal);
oder so ähnlich...