Ja, Delphi ist hier bissl Andersrum.
Eigentlich ist beim
CreateFile standardmäßig alles Exclusiv, aber beim TFileStream standardmäßig alles Shared.
Allerdings hast du beim fmCreate ein kleines Problem, denn dort kann man die Shared-Attribute nicht benutzen, weil das bereits $FFFF ist und $0010 (fmShareExclusive) da nicht mehr rein passt.
Falls nichts hilft, dann wäre noch
THandleStream.Create(CreateFile(...), True)
eine Variante.
PS: TFile.CreateXYZ, .OpenXYZ, .WriteXYZ und .AppendXYZ gibt es auch noch, auch wenn das intern auch wieder TFileStream benutzt, aber wenn es eh keinen Unterschied macht, dann wenigstens "einfach".
IOUtils.TFile