Unsure why you have the code Cells[1, aRow] = '1', when there are no '1' strings in your data file.
If I change that to Cells[1, aRow] = 'classes', I indeed have the 'classes' rows drawn as red.
Im also unsure why you have Grid1.Enabled := False; in the method Grid1Click.
But, yes, OnPrepareCanvas has worked fine for me.
Note:: To set goRowSelect use:
Options:=Options+[goRowSelect];