How to automatically remove placeholders for ads when blocking them in Chrome?
Browser based ad blocker extensions, such as uBlock Origin, work by preventing third party (cross site) requests from being made at first place. They explicitly have a list of which third parties loads ads, so they prevent the request, which in turn means no placeholder (the space occupied to show them on a page) for them in the rendered page output because those third party scripts were blocked from execution.

Non-browser based ad block solutions, such as Adaway and DNS66, focus on hosts based blocking, in which a request to an advertisement is redirected to localhost (user's own system), which in turn does not load anything. Since they don't prevent third party scripts from being executed, the scripts get to be loaded, with the placeholder the advertisement getting reserved in the rendered output of the page, but with no real ad being shown because of content request redirection to localhost.

So, if you want to save that real estate in the screen, you'd have to find a browser which has support for a popular browser based ad blocking extension. 

Chrome does not support extensions as of now, so it is out of the equation. I don't know of Chromium based browsers with support for extensions, except Yandex browser which supports some Chrome extensions, and Brave browser who's native ad blocker at some sites achieve what you want. But, Firefox for Android is explicitly supported by the mighty uBlock Origin.

Here's how  a sample page from Vox website looks like, first with host based solution, than with uBlock Origin extension based solution, in Firefox.