Ich gehe mal davon aus, dass du immer nur den letzten siehst?
Die eigenschaft Text bezieht sich immer auf den gesamten Inhalt des Memos, das heißt bei jedem Schleifendurchlauf erstezt du den Inhalt des Memos mit dem aktuellen Datensatz.
Memo1.Lines.Add(...);
Sollte es tun für jede Zeile.