Nutze die Daten des Feldes diekt und nicht die Daten der Columns im DBGrid. Die Daten da sind nur vorhanden, wenn du die Columns manuell erstellst. Jede Col hat aber einen Verweis auf das
DB-Feld, über das du die Feldbezeichnung bekommst.
DBGrid1.Columns[1].Field.FieldName; // oder DisplayName, wenn du dem Feld einen andere Bezeichnung gegeben hast.