In theory, he has a contract and they could insist that he start on the appointed day. He could, of course, then hand in his notice.
In practice, the employer will be disappointed and probably annoyed, but won't do anything about it.
He should call them as soon as possible and tell them. He should also give them the "various reasons.".
By the way, if he is staying in his current job because they have counter-offered, he should not accept the counter-offer. If they don't appreciate him now, they probably won't appreciate him in the future.