Try handling the SelectionsChanging event and adjust the selected range there (in addition to handling CurrentCellActivating).
private void gridControl1_SelectionChanging(object sender, GridSelectionChangingEventArgs e)
{
if(e.Range.IsRows && e.Range.Top % 3 != 1)
{
e.Range = GridRangeInfo.Row((e.Range.Top-1) / 3 * 3 + 1);
}
}