this is very like something that Chris Locke did inside inferno (drawmux). this program allowed multiple remote clients to view a draw session, by snooping on the draw state exactly as you suggest.
the main difference was that in that scenario, the draw snoop ran on the terminal, using its local display, as opposed to running on a CPU server, using a terminal's remote display. however the form of the required code is very similar. it's in /appl/wm/drawmux/drawmux.b in the inferno distribution; it might be useful as a template for a plan 9 version.
