Lets say I have a mono recording of my voice. With the user having headphones on, I want the sound to sound like someones talking from different directions in 3D. Is this possible, and if so, how would I go about doing it?
You need some software that implements Binaural Synthesis.
The first such application I found on Google was "Amphiotic Synthesis", however I have not tried it for myself.
There are two main ways that surround sound is produced. The first, and most standard, is to record in either stereo or mono and then pan the sound between left and right and front and back speakers to place it as desired. The other is to use an array of microphones to pickup the actual soundscape as it was live by recording things angled forward left, forward right, back left and back right (or whatever other channels are needed).
Your scenario falls under the first of these two and is not at all abnormal for how surround sound is produced. It is actually the more standard approach.
Once you have a surround mix of the audio, you would need to use some type of modeling to make "virtual surround" from the mix. There are various tricks that can be used to make our brain think things are in front or behind even though we're actually hearing stereo. This is the Binaural Synthesis that slim refers to in his answer, so I won't go in to more detail here.
You can use panning and reverb to simulate 3D positioning of a sound.
To do this you will need to to import your mono sound file into a DAW (digital audio workstation), apply reverb and panning and reverb to it, then export a new stereo sound file.
This of course is only a simulation of 3D space. To achieve more accurate spatial positioning you could re-record the speech using a set of binaural mics attached to a mannequin head.