Ja, Delphi (und auch andere Compiler) kompileren mit dem Typen, für welchen die eigene EXE erstellt wurde.
IMAGE_NT_HEADERS ist also nur für andere
PE (EXE/
DLL), vom selben Type, wie das eigene Compilat.
Aber niemand verbietet es direkt IMAGE_NT_HEADERS32 oder IMAGE_NT_HEADERS64 zu verwenden.
* entweder nur mit Einen der Typen, wenn IMMER die selbe
PE gelesen werden soll (unabhängig was die eigene EXE ist)
* oder eben vorher auslesen was für ein Typ es ist und dann den jeweils passenden Header verwenden