For the sake of backward compatibility, it probably makes sense to keep the names of the existing events (OnDocPublished and OnDocUnPublished) and add to the list (OnBeforeDocPublished and OnBeforeDocUnPublished), at least for now. If the additional changes are made so that publishing/unpublishing is a button at the top rather than a checkbox in the middle of the page, it might make sense to create an alias so that either name could work.
I have uploaded an altered copy of /manager/processors/publish_content.processor.php which adds the "OnBeforeDocPublished" event.
Of course, an entry in the modx_system_settings table will also be necessary:
id: [some integer]
name: OnBeforeDocPublished
service: 5
groupname: [NULL]
My testing so far has verified that the above modification works (the event is invoked), though other changes may be necessary to make the change more useful overall.
Sorry, the last sentence should say "...the names of the system events should include the 'Form' reference..."