Some people have an impulse control problem.
Just remember, you teach people how to treat you. Whether you are laughing it off or shrugging as you pass, you are encouraging her by not letting her know it bothers you. She may think you are cool with her comments and may not realize their impact.
Say something like, "Boy, if I had low self-esteem, your comments about my hair would really hurt," and walk away. Or, "If I didn't know any better I would think you didn't like me." Shift the negative energy right back to her and give her something to ponder about. Or . . . be the first to comment. Say, "Did you do something different to your hair, it looks lighter/shorter than normal." You and everyone around will know that it is damaged/breaking. Or reference a bald/thinning area on her head and say, "You know, the same thing happened to me after I took out some extension braids. It took forever for that area to grow back. I was so pissed off." And be sincere about it too. Make sure you spot her hubby around so she feels a little embarrassed. People dish out way more than they can take and I would give her a little taste of her medicine (In a seemingly nice way of course.) Tell her you like her outfit, when she looks a little uncomfortable in it. The point here is to place her in the spotlight. Make her recognize that she is living in a glass house.
It seems like she has gone to the point of no return as far as working your nerves. It's not what she says at this point, it's who she is. If one of your girlfriends would have made some of the same comments, it would have been a big joke. At this point, Miss MIL can't ever do right b/c you are sensitive to her now. Your boyfriend won't speak up b/c he has been living this way for the last 22 years.