I’m not sure if I would advocated doing what you want to do, especially if you want to change other elements of the currently rendered page. That could lead to a lot of different headaches.
However in How to target Dataview queries for CSS styling I talk about various option on how to introduce targets to attach stylings to dataview queries. I also mention that you’ve got access to dv.container within your dataviewjs scripts, and this is where dataviewjs stores the result of the current query.
In my experience it’s not been any problem concatenating multiple dv.table() and/or dv.header() and so on, within one script without having to use dv.container. But your mileage may vary, so if not using multiple output calls, you could consider tinkering with changing the dv.container.
Theoretically, you should also be able to use dv.container sub elements and introduce them to anywhere in the DOM too, but I’ve not done that as such. But dv.container is a normal javascript HTML Element, so you’re kind of free to do whatever you want with it… Just be careful when changing the DOM in general.