This method setRowStyles()
is called only when a table is rendered.
You can set a style dynamically this way:
myDataTable.getRowElement(i).getStyle()...
or
myDataTable.getRowElement(i).setClassName("myDataGridSelectedRow");
You do not need to remove style name from your grid.
EDIT:
An alternative approach is to override the standard DataGrid CSS Resource:
How do I style a gwt 2.1 CellTables headers?
I would recommend this approach if you want to make many changes to default GWT DataGrid styles.