Sockets are relatively very fast; related to using say message Q. Socket per se would not choke; your single C# program should be able to cope up with the load; else the messages would continue to pile up and eventually socket send calls would start backing up.
Message Q systems are systems designed to do what you are trying to do here - they provide a middleware that allows sending and receiving messages. They offer things like recovery, guaranteed deliver, allow you to scale out (by using say multiple receiver C# programs), etc. You can look at them.
If you are too worried about sockets performance, you could use some sort of interprocess communication, details of which are OS dependent. Things like shared memory, pipes etc. Usually all of them, including sockets, are fast enough that you would not notice much difference in normal routine use. The difference would be apparent only at very high rates .
You could also look at things like in memory databases. PHP writes it into in memory DB; C# program reads off the in memory DB