How can I change the mouse cursor on the fly while the user is moving the mouse over cells?

You can override the OnMouseMoveOver method and then call ShowContextCursor(idcPrimary);

idcPrimary is the resource id for the cursor to be displayed.