Один из способов сделать это - захватить событие _CellBeginEdit, проверить, разрешены ли какие-либо изменения в целевой строке, и отменить событие, если изменения не разрешены:
private void dataGridViewIndexesSpecs_CellBeginEdit (отправитель объекта, DataGridViewCellCancelEventArgs e)
{
if (e.RowIndex <= 3)
e.Cancel = true;
}