OK, dann ist jede Zeile dennoch nur ein Feld.
Jenachdem, wie du nun die Farben änderst....
Wenn du nur die Hintergrundfarbe änderst, aber der
VCL das weitere Zeichnen übernehmen läßt, dann geht natürlich nur eine Farbe.
Wenn du den Hintergrund komplett selber zeichnest, dann mußt du halt den Zeichenbereich aufteilen (TabWidth) und jeweils die Teile einzeln ausmalen.
Oder du verwendest eben den ListView, welcher von Haus aus schon mehrere Spalten kann.
[edit]
Wer hier weiß was diese
^X-EscapeCodes eigentlich machen?
Ich würde es dann doch eher so empfehlen:
ListBox1.Items.Add('First'#9'Second'#9'Third');