You can try making the changes directly on the underlying data source and not go through the grid to make the changes. This way, you will avoid all the grid events that accompany changes.
this.gridGroupingControl1.BeginUpdate();
foreach(GridRangeInfo range in this.gridGroupingControl1.TableModel.Selections.Ranges) {
for(int i = range.Top; i <= range.Bottom; ++ i) {
GridRecordRow r = this.gridGroupingControl1.Table.DisplayElements[i] as GridRecordRow;
int index = this.gridGroupingControl1.Table.Records.IndexOf(r.ParentRecord);
dt.Rows[index]["boolCol"] = true;
}
}
this.gridGroupingControl1.EndUpdate(true);
e.Inner.Handled = true;