Una forma rápida de hacerlo:
Declara una variable Columns de tipo TDBGridColumns que creas al incio:
Columns := TDBGridColumns.Create(nil, TColumn);
y destruyes al final
Columns.Free;
Cuando abras la tabla le asignas las columnas:
Código Delphi
[-]
DBGrid.Columns := Columns;
Table.Open;
Al cerrar la tabla guardas la columnas:
Código Delphi
[-]
Columns.Assign(DBGrid.Columns);
Table.Close;
DBGrid.Columns.Clear;
// Saludos