The other approach would be to have your datasource provide a tableviewcell with a highlight applied based on the list of cells to highlight -- you would have to reload to update.
Another option is to create your tableviewcell's once, and store these in your datasource. tableview_cell_for_row would need to return the stored cell. But then you have access to the cell, so can change its contents in realtime. This is not recommended if you have a very large table, since you are wasting memory on cells that are off screen.