The last time I saw this happen, the response was to stop the meeting temporarily, take the person out to some place private and explain to them that they had better not do that again and if they did not agree (as the person who did this didn't) then they would not be returning to the meeting or, depending on the level of insubordination in the private meeting, their job. As it turned out that person was immediately transferred to another team and never allowed to be involved in anything to do with that project again.
Since you didn't do it at the time, you (and/or you boss) need to have a private sit-down meeting with the person and explain how you need to present a united front to the client no matter how much you disagree in private or their job will be at risk because things like this can cost you the client. This is a firing offense but someone junior may not have realized that so give him the benefit of the doubt this once. Make sure you clearly and unambiguously explain what will happen if he does it again though. Check with your boss and HR if necessary before the meeting to explain the process when a person has a performance problem (which this is and a very serious one at that.) There is no coding skill in the world that can make up for this lack of judgement around a client. The junior dev needs to understand that this is not acceptable in any way shape or form.
Make sure you also go over the presentation with the team beforehand, so any objections to what is being presented can be raised at that time. Do not take a person who raises an objection and will not agree with the end decision to any client meeting concerning that topic.
Make sure your whole team understands that actions have consequences and that in front of the client is not the time or place for disagreement. However, when they have objections beforehand, listen to them seriously and make changes if need be. Or if you cannot for other reasons, explain why. Often the junior people are not aware of the political considerations that might make a technically less than optimal choice the right one for the situation. Juniors need to be taught to think in terms of more than the technical when deciding. The only way they can learn that is if you explain the other considerations.
There seems to be some feeling that this is harsh. It is not. I am not suggesting firing the guy this time. I am suggesting that he needs to clearly understand that actions have consequences and one of the potential consequences of this type if action is getting fired. It is being kind to the guy, helping him realize the inappropriateness of his actions before he gets himself in a situation he can't extricate himself from.
Some bosses will be far less forgiving of this sort of thing than others and no one likes to be made to look bad in front of the client. Nor do businesses like the client to hear their dirty laundry. Professional disagreements have their time and place, the sooner this guy learns that the better for him personally.
This is actually mentoring the junior not being harsh. In reality, the world can be a harsh place. There are things that are not tolerated in business that would have been OK in school. Many young people don't realize this at first and I have seen several get fired for things far more minor than this because the person who should have taken him aside and explained this to him did not.
As senior people it is partly our job to make sure that juniors are clear on what is and is not acceptable behavior in that particualr workplace. Yes the OP erred in not making it clear beforehand, but that is an error that can't be corrected for this guy, only for the next one. In the meantime, the junior person needs to know why this is unacceptable and what the consequences of continuing to do things like this are.
The consequences may vary from company to company, the OP should talk to his boss or HR about their process. Some places give several chances, some go right to formal HR documentation of a performance problem and some may not particularly care (probably few given that this happened in front of the client). But by all means the Junior person needs to be talked to about why this is a problem and what the possible consequences of continuing to do this are.
In closing, even a person with less than a week's experience should know you never bring up a difference of opinion in a client meeting. That is workplace 101, day one stuff. I agree the senior should have done a better job of prepping him, but some people are so convinced they are right, they don't get that there is a time and a place.
Lastly, before counseling someone on an issue of performance, it is always a good idea to have a talk with HR about what types of things can and cannot be done or said. Anyone in a leadership role should have this conversation long before they have a particular problem employee to deal with.