Dann hau den IBMlern mal auf die Finger
Die Performance kannst du deutliche erhöhen, wenn du einen größeren Puffer mit BlockRead einliest. Die Größe kannst du ja selbst bestimmen. Das packst du solange in ein dynamisches Array of Byte, bis alles drin ist. Dann kannst du da prima drin arbeiten, ohne die Datei anzufassen.
Auf die Art habe ich vor... (ist schon zu lange her) mal eine Kopier-Funktion simuliert. Die kam annähernd an die Geschwindigkeit des guten alten "copy" heran.