TOTALLY normal!!
My 11 year old will spend 30 minutes in the shower singing and whatnot...what helped? His friends at school noticed he didn't smell good and said so. We kept telling him that people will notice...and they did.
The more you fight him on this? The more he will dig his heels in and NOT do it.
Brushing teeth? Fine. get cavities. take him to the dentist and have his full treatment done. let THEM tell him he has poor oral hygiene...and what will happen if he doesn't start taking care of his teeth - not just the cavities, the root canals, the loss of teeth...does he want to be a teenager with no teeth or dentures??
Shower? Fine. Let your friends tell you they don't want to hang with you because you smell bad.
Summertime was the worst for us. He would say "I was in the pool" so I'm not dirty...no you aren't dirty but the chlorine is making your skin dry.
STOP fighting. he doesn't want to shower? Okay. Let me get some Lysol to spray where you have sat because it's just nasty...I know this is hard to do. I've BEEN THERE!!!
Now? he'll be 12 in July. Showers every night after dinner. It's part of his routine. If he wants to plug the tub so he can sit in the tub and have the shower on? Fine.
My 13 year old? NEVER had this problem. EVER. he would remind me if the schedule was off when he was younger - and now? Showers EVERY morning.
I know it's hard to stop fighting. But you really need to. Natural consequences will happen. Do you want your child to be made fun of in school? No. But you've warned him. TRIED to protect him. Now it's time to show him and however hard it is, let natural consequences happen. And it WILL happen. Will it hurt? Yes. But it will be a lesson that he will learn and it will stick with him....
good luck!