You can use the project functionality to do that. See for example this article for a short overview: https://world.episerver.com/articles/Items/the-projects-feature/ or the user guide for more extensive documentation: http://webhelp.episerver.com/latest/cms-edit/projects.htm.
You can also write a module that taps into publishing events and gets all the children and publishes them. I would agree with Asa, projects would be a recommended option.
Have you tried https://github.com/mariajemaria/RepublishContent
There was an add-on for edit mode, but I cannot find the link now.
Is it possible in Episerver 10, from the editor UI, to publish a page and all its child pages? What I have seen so far I need to click every page and publish one by one and it's a lot of work when you have many pages.