What I'd try:
1) Don't keep your .mp3 files anywhere in your web folders - keep them outside the HTML file structure.
2) Set Apache to parse .mp3 as a php file, so that the information you send will be viewed by their browser as an MP3, and they'll never see the PHP in the middle.
3) Use whatever security functions you deem necessary to ensure that the fella is OK.
4) If security passes, send him the MP3 he asks for, and make sure that there is NO OTHER PHP output. If not, send him an MP3 that explains about paying first!
5) look at fopen and print().
This is shooting from the hip, no guarantees...
-Ben