Lass dir bitte einmal den Wert von SizeOf ausgeben.
Der ist immer 4 (Delphi ist ja bis jetzt immer 32bittig, noch nicht 64), nämlich die Größe eines Pointers. Nichts anderes ist nämlich eine Stringvariable eigentlich.
Was du meinst ist Length, nämlich die Länge des enthaltenen Strings. Dazu kommt noch das oder die beiden (je nach Betriebssystem, für das die Datei war) Zeilenumbruchszeichen.
Besser geeignet dürfte die Funktion FilePos sein, die dir die aktuelle Position innerhalb einer Datei zurückgibt, das sollte denke ich auch bei einer Textdatei funktionieren.
// EDIT:
Ach ja: bei großen Dateien würde ich die Progressbar nicht bei jeder Zeile aktualisieren, das macht das ganze unnötigerweise deutlich langsamer.
Und zur Beschleunigung kann man ggf. auch noch weitere Optimierungen machen, deine Stringoperationen z.B.

.