If you've got horizontal resolution changes within a line, you need to render at lowest common multiple. A per-pixel timer would kill performance.
I now think a per-pixel timer would be overkill. The CRTC registers are defined in characters, so a per-character timer should be sufficient. Typical values would be 128 horizontal characters of which 80 are displayed. Would this appease your performance concerns?
If you need to render per-pixel, you'd be better off making the video chip implement device_execute_interface and letting the scheduler deal with it.
If I need to take this option could you elaborate on what it would involve, any examples of it's usage?
I'd prefer to implement something like MC6845_UPDATE_CHAR that enhances the use of the 6845, but doesn't affect machines using MC6845_UPDATE_ROW that don't make changes during scanline.