I'm not sure there is an actual event fired, as it's done by an separate scheduled task.
"If you set the Publish from/Publish to values to pages that use workflow, they still need to be approved before being published. Once approved, the page is published by a scheduled system process. The process is set to execute every minute by default. The process only publishes the page if the page already reached its Publish from time. You can check the status of this process in the Scheduled tasks application. Choose the website and search for the Content publishing task."
What would need to happen by your custom code?
You could create you own Scheduled task that would completely take over the publishing OR that would just check every minute if there is any page that got published from set in the current minute and is actually published.