(Does not answer the question but is a useful link; note in particular that "visual separators" are optional.)
I assume you started out with the same random searches I did, generally leading to the unhelpful suggestion that you might include user-agent detection. Which kinda defeats the purpose of having a phone number in the raw html :(
Does your 404 page act as if you had simply typed in the URL example.com/tel:555-et cetera? If so, you should be able to make a rule to intercept requests beginning in "tel" and send them to a custom page. The rule will only be seen by devices that don't recognize "tel"; it won't interfere with telephone users.
...results in a 404 page when clicked from a PC. <snip> "Firefox doesn't know how to open this address, because the protocol (tel) isn't associated with any program."
Now I am confused. Where does the 404 come in?
If the browser steps in before even sending a request to the server, then it isn't your problem. The only way to prevent it is to deploy user-agent detection ahead of time, so the tel: links are only displayed if the user is on the right kind of phone. Or if-- oh, ###, now it gets complicated-- their computer really can make phone calls. (This is a closed book to me, but I have just this moment remembered my father telling me that his computer dials for him. That's a desktop, not mobile-of-any-kind. And no, he's not on a dialup modem connection ;))
You may still be able to treat it as a non-problem if the links are designed so it's very obvious they lead to a phone call, not to another page. Of course there will always be those users who expect their computer to be able to act on all links all the time everywhere...