I'm genuinely interested in why are you running 10 to 20 VMs at once. I come from a MS environment and I don't see any use cases in my daily work where this would make sense.
A group of 8 of them is a set of build/test environments for a piece of open source software I am the author and maintainer of. They host different combinations of Linux distributions and kernels (the software is the userspace layer for a set of kernel modules), so that whenever I commit enough changes, I can just mass-run tests, code build and package builds accross those VMs. This is just run by a central Makefile on my local machine, and is more convenient than remotely using the build environment I have on my servers when on the go, sometimes using 3G WWAN, because of better latency saving me many seconds for each test build or when having totally unreliable uplink (train and plane mostly).
Then, I generally have about 5 to 10 VMs which hold customer environments, from simple standalone servers or clusters that I am currently prototyping, to full-blown network topologies with Linux/BSD server VMs connected to GNS3-powered emulated Cisco devices. I typically have copies of those on my servers too, but again, on the go, it is more convenient to have them running locally, again to speed up development cycle.
Of course, anything that requires long-running tests goes on my servers, not on the laptop. When at home (home office actually), I typically only use the VMs on my servers, fiber internet connection making working remotely with the datacenter seemless.
The paradox is that I have more things running on my laptop than on my desktop workstation, typically ~10-12GB of RAM for the VMs on my laptop, when my workstation 32GB are barely used at all (but used to be before I could afford to buy servers and host them somewhere nice) :-)