Pi-Hole uses the lighttpd daemon (port 80) to return a semi blank page instead of the real ad and gives you the admin web page.
You could setup shop with two IP addresses on the same physical interface and have both daemons listen/bind to the different IP's.
Have a look at below thread how it was done with nginx + lighttpd (both competing for port 80).
Surely you can bind Apache in a similar way.
EDIT: You can have as many services listening on port 80 as you like.
If your subnet is large enough, you can run a thousand daemons listening to their own IP address