Your son sounds like me when I was a child and I have OCD. I don't have it severe, but I can remember feeling like everything had to be in order or people would look down on me. The closer the time came for people to come over, my heart would race and I would get short of breath. He might be getting anxiety worrying about what the company will think if they see these "out of order" things. As I got older, my OCD went into cleaning. Now, I have to have a spic and span house before my company comes over. Telling your son to stop obsessing is not only not helping, but it could be adding to his anxiety. I would get so upset when my family just didn't understand why I was doing it. I could tell that it annoyed them. He can't stop it. You may want to try some relaxation techniques with him like breathing, etc.. As well, before the company comes over, play a game with this, only if he goes along with it: do the opposite, tell him to get all of his broken toys out and put them in a big pile so everyone can see them. Do this only if he is up for it, if not, don't push it. When the company comes over, he will see that the world didn't end because of his toys. You should talk to a doctor about this. As he gets older, it will most likely manifest into something else. I had a sad childhood and teenage years because of this. It wasn't until I was an adult and had my own children that I realized there is help for people like us. Good luck to him and give him bunches of hugs and kisses so that he knows it's o.k. to be this way.
I am not a doctor but my grandson has little fits over certain things and has certain toys he wants and so forth at his age. It sounds more like a behavioral problem. Please if it is turning into a problem for your family, ask a doctor. Good luck