Thanks David. I have already looked through the documentation and tried this partial cache dependency approach, but unfortunately the only thing that works is clearing the "currentdocument|sitename|/parent-page/child-page" cache key (or one of its dependencies). Adding a partial cache dependency to the web part doesn't seem to add a dependency to the document's cache key, and therefore touching the dependency doesn't clear the cache for the document.
I am confused why the web part gets cached along with the document if it has partial cache dependencies set up - I expected that somehow Kentico would know that this particular part of the output shouldn't get cached?
I did also try the output cache dependencies web part on the child page template but this had the same effect (i.e. it didn't clear the cache).