Ich hatte mal ein solches Projekt angefangen, aber nicht fortgesetzt. Grundsätzlich klappte es damals aber:
https://www.delphipraxis.net/139102-...-projekte.html
Heute würde ich das sicher nicht mehr so schreiben, aber das kennt vermutlich jeder Entwickler...
Die grundlegende Idee ist, dass man eine Instanz ohne Adminrechte weiter laufen lässt während das Update läuft, und diese Instanz dann eine neue Version von sich selbst ebenfalls ohne Adminrechte startet. Sie bleibt ja im zuvor verwendeten Benutzerkontext. Dafür müssen die Exen natürlich untereinander kommunizieren.