Also don't trigger file read (LoadFromFile) for each TImage if it is the same, that is just a waste of time.
Code:
Hintergrund.Picture.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'header.jpg');
Load it once before the loop then assign/copy it for each item.