AFAIK wyodrębnij plik exe z zasobów i zapisz go do np. tymczasowej lokalizacji. Tak zapisany plik możesz uruchomić za pomocą Process.Start
byte[] exeBytes = Properties.Resources.aplikacja; // Pobranie zasobu .exe
/*
Tworzenie pliku tymczasowego
tempExeApp będzie zawierać coś w stylu
C:\Users\user\AppData\Local\Temp\tmpA495.exe
*/
string tempExeApp = Path.GetTempFileName().Replace(".tmp", ".exe");
// Zapisanie zasobu jako plik .exe na dysku
File.WriteAllBytes(tempExeApp, exeBytes);
// Uruchomienie pliku .exe
Process.Start(tempExeApp);
dobrze by było po zakończeniu działania programu usunąć plik tymczasowy z dysku. Możesz to zrobić, dodając np. File.Delete(tempExeApp) na końcu programu.
BTW, wyodrębniony plik możesz też oczywiście zapisać do folderu gdzie znajduje się Twój plik główny .exe i z tego miejsca go uruchomić.