Ну цикл на самом деле здесь лишний.
Достаточно было сделать так:
Код:
procedure TForm2.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
if (ARow > 0) and (ARow <= n) then stringgrid1.Options := StringGrid1.Options + [goEditing];
if (ARow > n) and (ARow <= 2*n+4) then stringgrid1.Options := StringGrid1.Options - [goEditing];
end;
А цикл только замедляет выполнение программы.
P.S. Спасибо в карман не положишь