Hi Dave--
I created a sort of "OID browser" diagnostic tool that does this a while back. It goes a little bit beyond what you've described--it shows a tree view of the current document, and for any node you select it will show you the attributes on that node. It also responds to moving the caret in the document itself, and you can modify attribute values in the attributes table. It shows the "secret" attributes that Arbortext adds to elements to control formatting, etc. That's part of why I created the thing in the first place, to try to troubleshoot some change tracking customizations I was working on, but that may not be what you want for end-user authors. It would be easy enough to disable that.
I didn't get too fancy with it, so it doesn't restrict the values you can assign to an attribute based on the DTD definition the way Modify Attributes does (though you could certainly modify it to do so).
The hardest part of making this work was getting the two-way syncing to work right--if I click on a node in the OID browser, the corresponding element in the document is selected, and conversely, if I move the caret in the editor window, the corresponding node in the OID browser is activated. But then I had to add some code to keep the updates from "boomeranging", e.g. I click a node in the browser, which triggers a caret move in the document, which triggers a change in the browser, which triggers a caret move, etc. etc. etc. For what you are describing, you'd only need to do one-way synchronization, so it shouldn't be too hairy to set up something like that.
--Clay