Si necesitas tanto control sobre las columnas, es mejor como lo estás haciendo ahora, sin bucles ni nada.
El bucle "for" lo hice pensando en la forma más rápida, pero si tenemos que controlar varias excepciones, al final el código se acaba ensuciando mucho y una modificación es más complicada.
Lo que sí te aconsejo es crear rutinas que le pases el Grid como parámetro, así no tienes que duplicar código. No sé si será viable, tú verás:
Código Delphi
[-]procedure TForm1.Button5Click(Sender: TObject);
begin
Divide(ACC);
end;
procedure TForm1.Divide(elGrid:TStringGrid);
var tmp:string;
begin
tmp := elGrid.Cells[7,0]; elGrid.Cells[7,0] :=elGrid.Cells[6,0];
elGrid.Cells[6,0] :=elGrid.Cells[5,0];
elGrid.Cells[5,0] :=elGrid.Cells[4,0];
elGrid.Cells[4,0] :=elGrid.Cells[3,0];
elGrid.Cells[3,0] :=elGrid.Cells[2,0];
elGrid.Cells[2,0] :=elGrid.Cells[1,0];
elGrid.Cells[1,0] :=elGrid.Cells[0,0];
elGrid.Cells[0,0] := tmp;
end;