Technically this is possible - it's called server name indication.
The first IIS version that supports this feature is IIS 8.0 (see here)
In your case you need to update your server to at least Server 2012 or use a reverse proxy that is capable to provide this.
I would recommend to use nginx as reverse proxy - this provides additional features like HTTP2 support and overall performance improvmenet of served content (nginx is doing some quite nice optimizations on transport as well)
To give a short explanation of what actually happens here:
When using SNI, the negotiation of the encrypted connection is modified in a manner, that the client sends the requested hostname at the very beginning of the connection - therefore older clients don't support this. Having the requested hostname received, the server can decide which certificate is handed to the client (when correctly set up the cert matches the requested hostname).
Having a server that doesn't provide this mechanism, there's only one certificate available per listener and this cert is handed out to any client that is connecting. Therefore a single endpoint (defined by IP:Port) can only respond with one certificate (and/or be bound to one hostname).
IIS7 doesn't provide SNI capabilities.
This leads to the requirement of either a certificate that contains all requested/served hostnames (which may not be possible due amount of hosts / different customers) or a unique binding (IP:Port) per offered SSL/TLS endpoint.