Can a Bitcoin node send messages to a program on the same machine? I`m currently programming some TCP communication in my custom Bitcoin client. I am wondering if it is possible for the official client to communicate with it if they are sitting on the same machine? For example, if I'd send a version message to localhost:8333 claiming my return address is localhost:8332, will the standard client respond as if it was communicating with a node on the internet?
Yes and no.  Don't use 8332 for your custom client's communication port, that is the default rpcport.

You can run an arbitrary number of bitcoind instances on your machine, as long as they are given different -port= and -rpcport= arguments, and they can all communicate with each other (using -addnode=127.0.0.1:...port... or -connect=127.0.0.1:...port... ).