¡Vaya! Nunca me había percatado de esto. Al parecer, la clase TDBGrid unifica en la opción dgColumnResize las opciones goColMoving y goColSizing de su ancestro TCustomGrid.
Entonces, puedes evitar el movimiento de columnas pero a costa de evitar también el cambio de tamaño.
Una opción un poco sucia de evitar sólo el cambio de posición es así:
Código Delphi
[-]
type
THackGrid = class(TCustomGrid);
procedure TForm1.FormCreate(Sender: TObject);
begin
with THackGrid(DBGrid1) do
Options := Options - [goColMoving];
end;
Desconozco si tiene algún efecto colateral.
// Saludos