Increasing/decreasing the font size when the width changes is exactly what I want to do. The amount of text in my columns is fixed. I don't want huge amounts of empty space in every cell or horizontal scrollbars because the text size stays fixed. My baseline target is a fullscreen kiosk style application, so in normal circumstances the height and width would grow at the same rate and the number of rows shown at once would also remain approximately constant (give or take the difference between 16:10 or 16:9 screens anyway).
If it wasn't for the fact that doing so would make the column headers scroll out of sight, nesting a standard MS DataGrid inside a ViewBox (to stretch it to fit horizontally while making it taller than the available space) inside a ScrollViewer (to scroll the result up and down again) would do roughly what I want.