How to make tables with fixed header and left column - scroll vertically and horizontally
We found a way that may perhaps be helpful for others, so we're posting the answer here. This applies to Drupal 7, Civi 4.6.17:


We needed to add extra fields to the Batch update profile code, as per this answer.
We used some javascript and custom css and allocated it to our batch update pages as a Drupal block, using php to target pages with '_qf_Batch_display' in their query string. (Actually, the Css went in our custom css file.)
You can find a simplified example containing the javascript, html and css here.


Hope this might give others a leg up to a system that has worked really well for us.