Generally speaking, if your first thought is "Should I subclass the Axes class?" then you might need to take a second look at what matplotlib has to offer out of the box. Granted, the graph you wish to duplicate is very complex, but let us break it down into various components.
First, you want multiple subplots to appear vertically "stacked" and share the same x-axis. Here is an example of how to do that:http://matplotlib.sourceforge.net/examples/pylab_examples/ganged_plots.html
(Note that I personally advocate against the "from pylab import *" code style, and this example could easily be redone from the pyplot interface instead.)
Here is another example where the person used LineCollections with defined offsets. This has the advantage of using a single axes object, but might be difficult to handle the y-axis.
To have multiple x-axis tick labels for a common y-axis is a concept called twiny. The following is an example of doing twinx (multiple y-axis tick labels for a common x-axis), but the concept is the same:
This is another example showing a different way of doing that:
As for some of the markings around the graph, I am not entirely certain how to implement that. I will leave that for others to suggest ideas for.
I hope this is helpful!