Die einfachste Lösung, lies alle Daten (inclusive ID) in Objekte und häng diese in eine Objektliste.
Wenn die
Query nicht zu langsam ist, dürften 10000 oder mehr Zeilen auch kein Problem sein.
Übriegens eignet sich "TDrawgrid" auch gut für Anzeigen und Bearbeiten von Datenobjekten.
OnGetText, OnSetText implementieren und RowCount setzen.