I agree with the other moms' comments about allowing him the independence to pick his own clothes, hide the ones you absolutely do not want him to wear, he will figure out the rest when he is too hot/cold. You can also discuss with him the weather for the day, if its going to rain and talk to him at the end of the day how he felt with the clothes that he picked. Don't force the issue, let him think about it and tell you. Maybe he is ok with long pants or cold at school.
Also, to avoid the headache in the morning, you can pick clothes out the night before as part of your bedtime routine, so you don't have to deal with it during the rush in the morning.
Pick your battles and if he is not going to hurt himself or others, let him experiment with it. He will learn to respect your "no" more when you say it only when it is absolutely necessary.
A.