Short Answer: every 10 min IDLE you have a chance to get a call from an NPC, it doesnt need to be a rematch. So you can get a call as soon as you have a number and are waiting in a diferent route.
If you only looking for a Thunder Stone, every Thursdays on Pokeathlon you can get one for 2500 points.
Long Answer with tips for POC:
Im currently doing Pokémon Oak Challenge on Soul Silver. And in the third section of the challenge you have to get 3 Leaf Stones from Gina, 1 Fire Stone from Alan before defeating Whitney. On the fourth section you need 1 more Fire Stone and one Thunder stone from said NPCS (or the Pokeathlon if you wanna wait for days to refill the shop).
The npcs so far never called me for a rematch, only to give the stones. Don't know if they give you the stones after a battle too.
To trigger the event you have to wait without interacting (sucks I know), every 10min you have a chance to get a call (dont know the exact number, but it feels like a 50-50% sometimes I get every 10min, sometimes take me 40min). You also have to wait in a different route or city, say you have Alan and Gina phones, you already get Leaf Stones from Gina, you can wait on her route, making you only receives call from Alan and Ethan (since hes a mandatory contact). If you enter a different route/cave/talk to someone/enter a battle the counter resets. You can also get random calls even doing all of this, but its not encouraged while doing POC because it will take a while.
Also, if you have something pressed on your touch pad, say a pokedex, and in the main screen appears an arrow pointing down, I dont know if that resets the count, but coincidentally or not, I didnt have a call when I waited this way.
If you also doing POC theres a strategy to get only Gina calls, as soon as you first encounter her get her number and turn back, is important not to progress through Goldenrod, because as soon as you pass the Day Care, Ethan will give his phone, and he calls a lot, making this a pain. Unfortunately that only works for Gina and the Leaf Stone.
For the Pokeathlon, every day the prize shop changes. Thursdays have a Thunderstone (but only one per day). You can also get Fire, Water, Leaf and Moon stones on different days of the week.
All of this information is based both in my experience, Serebii database, and in reddit community of Pokemon Oak Challenge.
You probably finished your game by now, but as I was searching for especifics about phone calls % I stumble in this post. So I hope I help someone else in the future.