Another solution is to derive the grid and override this virtual method, only inverting teh cells that you want.
protected virtual void DrawInvertCell(Graphics g, int rowIndex, int colIndex, Rectangle rectItem, bool inPaint)
{
// Note: rectItem only is the visible bounds of cell
if (!CurrentCell.HasCurrentCellAt(rowIndex, colIndex))
m_gridPaint.DrawInvertCell(g, rowIndex, colIndex, rectItem, inPaint);
m_bInvertRect = false;
}