While I disagree with your assertion that nobody can speak on behalf of a collective, that is the correct usage. Other ways to say "on behalf of" would include:
- He's (speaking) in place of [x]
- He's (speaking) in [x]'s stead
- He's (speaking) for all of [x]
- He's (speaking) representatively for [x]
Where the general idea is that the subject perceives (often correctly) that [x], in this case Iran as a gestalt entity, can't do something, in this case speak, for themselves. The subject takes it upon themselves - or has it put upon him - to do that something themselves. A diplomat is a professional at speaking on behalf of his country, and so is anyone employed in Public Relations for a company.
When someone incorrectly thinks they represent a group in something, people will often say that he or she doesn't speak for that group of people. In this case, you claim that nobody can speak for a group of people. I disagree with that, but that's the grammatically correct way of saying it.
"Instead of", though close to a valid way to express your idea, isn't what you want to say. "Instead of" compares two equally-valid options and choose one over the other. Your intended implication doesn't fit this statement, because you're identifying him as an intended representative of Iran, not as another country. You might say you went on vacation to India instead of Iran. That would be the proper usage, because you're comparing two countries. A person isn't comparable with a country, so the phrasing is subtly different.