One way to do it is to use the Networks for WordPress plugin: https://wordpress.org/extend/plugins/networks-for-wordpress/
It will create a sub-network for each of your domains. So basically you’d have a network of networks of sites. Each sub-network will be using the same install of WordPress, but will be managed separately with it’s own sites under it. Like so:
mainsite.com
-
site2.com
-
blog1.site2.com
-
blog2.site2.com
-
-
site3.com
-
blog1.site3.com
-
blog2.site3.com
-
(mainsite.com could also have it’s own blogs under it)