Only a single process can listen on a particular port for the same IP address and protocol, because otherwise operating system wouldn't know which process to send the received packet to.
To achieve what you want you will have to use a reverse proxy which will listen on port 80 and forward traffic to correct destination. There are multiple ways to do this. For example you can set up your web server (Apache) to forward WebSocket requests or you may configure Node.js to forward HTTP traffic. Research available options and choose the one that fits your needs best.
As well as the reverse proxy option others have already mentioned, you could have multiple IP addresses assigned to the machine. This may cost for IPv4 (or simply not be available depending where your server is hosted) but should not if you are in a position to use IPv6 (i.e. if the people connecting to one or both or your services are going to be IPv6 capable). This way both services can listen on port 80 on different addresses.
As you only mention port 80 I assume that you are not using HTTPS. If you are then if using the reverse proxy option you need to either need to have a multi-name SSL certificate or configure SNI and live with the fact that some old clients (IE on XP, old Android versions) won't be able to connect without errors. The multiple address option circumvent this issue at the expense of needing the extra address(es) assigned.