Yes, you could have made your creatures all indestructible this way. What you did was a clever play that could've sealed your victory in this game.
The notion your opponent expressed is nonsense: it doesn't matter whether Selfless Spirit was there at the time already.
First, to get your head around how the stack works, please read this plain explanation of the stack and priority which helped me a lot when I was new to the game.
How making this play would work
Here's what you'd do, and all the priority & stack interaction that would happen:
- Casting: Your opponent casts Wrath of God, putting it on the stack.
- Priority pass: He passes priority to you. (He must do this before it resolves.)
- Casting: While you have priority, you cast Chord of Calling. The stack now looks like this:
- Wrath of God (bottom)
- Chord of Calling (top)
- Priority pass ×2: You pass priority to him. He does nothing with it. He passes priority back to you.
- Stack resolution: Because everyone has chosen to pass priority without doing anything, the top item on the stack is resolved. This is Chord of Calling: you search your library for Selfless Spirit and put it on the battlefield. (It's there now. It doesn't matter if it "wasn't there" before.)
- Priority assignment: At the end of resolving a spell or ability, the active player gets priority. (That could be you or your opponent; it's whoever has the current turn.)
- Priority pass (maybe) & ability activation: Before Wrath of God can resolve, both players must pass priority again. But when you get priority, you will use it to sacrifice Selfless Spirit (and immediately move it to the graveyard in paying its cost). The stack now looks like this:
- Wrath of God (bottom)
- Selfless Spirit's ability (top)
- Priority pass ×2 & resolution: Both players pass priority again, resolving Selfless Spirit's ability, and giving all your creatures indestructible. Active player gets priority again.
- Priority pass ×2 & resolution: Both players pass priority again. Wrath of God attempts to destroy all creatures, but does not destroy your creatures --- it just destroys your opponent's. Nice one.
The stack is now empty and you're both free to do whatever. You have your creatures and your opponent no longer has any of theirs, probably.