The answer to situations like this is to never allow anyone to put you in a position of lower status. Never apologize for taking an actual job offer over a theoretical job offer. And never let anyone yell at you. Here's how the conversation could have gone:
You: I've had another job offer which would conflict with the job we discussed.
Him: I thought you said you were available.
You: I was at the time, but this is an actual offer. Since I haven't heard from you, I'm assuming that yours isn't an official offer yet. Am I mistaken?
Him: Well, no. I can't make a job offer until it's definite.
You: No worries. I understand. In that case, I'm going to accept this other job, but I appreciate the call.
Him: This is unprofessional.
You: I'm certainly sorry you feel that way.
Him: You can't say you're available, then bail on me.
You: Let me just make sure I understand. You're upset because you'd like me to turn down work for a job that's only a possibility at this point? I don't see how I can do that, financially.
[ranting]
You: Do you realize you're yelling?
[ranting]
I really don't let people talk to me this way, so I'll need to end this call. But I'd love to hear from you again when you're calmer and you have a job offer for me. Thanks so much.
[click]
...and go on with your day.