How to get hostnames to show up in web interface?

This means your routers tells the client via DHCP that it itself is the DNS server. It hence receives all queries and forwards them to your Pi-hole. This, in turn, replies to the router (because this is the device that asked the Pi-hole) which then sends the reply back to your devices.

Unfortunately, when routers do it this way, there is no chance to get the individual IPs on the Pi-hole as this information is not available if the router is acting as a proxy.

Check if you can set the Pi-hole's IP address in your router's DHCP setting rather than the DNS settings. If this is not possible, then you have to switch to Pi-hole's internal DHCP server to be able to achieve what you want.