It's easiest to use fig.add_subplot
directly in this case.
As a quick example:
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(6, 8))
# Axes that share the x-axis
ax = fig.add_subplot(4, 1, 1)
axes = [ax] + [fig.add_subplot(4, 1, i, sharex=ax) for i in range(2, 4)]
# The bottom independent axes
axes.append(fig.add_subplot(4, 1, 4))
# Let's hide the tick labels for all but the last shared-x axes
for ax in axes[:2]:
plt.setp(ax.get_xticklabels(), visible=False)
# And plot on the first subplot just to demonstrate that the axes are shared
axes[0].plot(range(21), color='lightblue', lw=3)
plt.show()