Also ich würde das prinzipiell anders angehen. Ich würde den Listview durchgehen und alle zu druckenden Einträge in eine Liste schreiben (Record Array, Stringliste oder Objektliste). Diese Liste würde ich dann eine Procedure übergeben, die das formatierte Drucken erledigt. Dann ist man schon mal den Listview los.
Und wie man dann druckt, kannst du meinen
NonVCL WinAPI Tutorials entnehmen:
http://michael-puff.de/Programmierung/Delphi/Tutorials/