My problem is specific to the ReportViewer control. The report displays correctly in every other way (ssrs server viewer, visual studio preview, visual studio 'Run', etc)
The aspx page hosting the control has two controls, the reportviewer control (assembly 10.0.0.0), and a scriptmanager control
asyncrendering = 'true' and processingmode = 'remote'
So the columns are not 'always visible' with the reportviewer but they are with every other renderer that i've tried.
The report i'm testing is just a simple table with a couple groupings (built using the wizard). To enable the fixed headers I went to the groupings view and changed the "FixedData" property of the first Static member to true per instructions I found here: