D..
C., I'm sorry you are going through this. My opinion (not knowing you, but as an experienced mom, and from what you've said), is that first of all, you really don't know how to discipline your son. Secondly, you worry about the neighbors, and are afraid to discipline your son.
If you do not learn how to tell him no, and deal with his tantrums, you are going to have a monster on your hands. (I say this with kindness, really and truly.)
Take away the laptop, tablet, iphone and hts. NO more games on them at all. The reason he is bored with regular books and non-computer games is that they don't "measure up" to the electronics. You have let him have these to placate him FAR TOO EARLY and offer them in order to handle his behavior, instead of disciplining him. That's a really bad idea.
He needs outdoor play, manipulatives like playdough, puzzles, train track, duplos, stuff like this. Art projects, water play. It's harder work for you to deal with this than just sticking an electronic babysitter in his hands, I know. But he is ruling you like a little tyrant, and you just can't have that, Mom!! You are the adult. You are the boss. You are letting him boss you around. Six hours to cut his hair? What? I would have gotten him a buzz cut if he had pulled that on me. And yes, I had a "screamer" when he was 1 1/2 - 2 years old. I'd let his hair grow down to the end of his nose before getting it cut, and my husband would sit in the chair and hold his close with his arms held down so that he couldn't get hurt. Finally, the stylist suggested that me and my husband bring him in on Saturday morning 20 minutes before the shop opened so that no one was there, after a full night of sleep and breakfast. It worked! He started watching the hair fall in the floor and forgot to cry. Hurray!
Have you told your pediatrician what is happening in your house with your child? He may have some good ideas for you. If it were me, everytime he starts a tantrum, I would pick him up and put him into his room and shut the door and not let him out of the room. I would not let him know you are in the hall. I would tell him that he may NOT come out until he stops crying. Then I would make him say he is sorry for pitching a fit. NEVER give him what he wants when he has a tantrum, C.. NEVER. YOU are the cause of his constantly demanding more and more accommodations. If you say no and put him in his room, no matter how many times you have to do it, he will finally "get it" that he not only doesn't get what he wants when he acts like this, but he also gets a punishment when he has a tantrum. That is good parenting. That is being the adult and not letting a child run the household.
If he doesn't want to feed himself, tell him that he must be done, and remove him from the table. ONLY feed him at the table - nowhere else in the house. If he is hungry enough, he WILL feed himself. If you act like you do not care if he eats, he will stop acting this way. It might take a while because he wants to win and fight you. Simply do not argue with him! Tell him that if he wants something to eat, he has to eat it himself. Also tell him that he may have his milk after he has eaten some of his food. Put a small amount in his cup, and after he has eaten a few bites, give him the cup. When he asks for more, tell him he can have more after he eats some more. If he starts crying and screaming, take him away from the table. It really IS that simple.
When he hits the wall between you and the neighbor, put him in his room and take away a toy. Tell him that the toy is in timeout for a week. And mean it. If you have to take away 10 toys the first day, DO IT. He will test you and test you. If you aren't 100% consistent, he will act worse just to win over you. You must not let him. You must do it EVERY SINGLE TIME.
No more milk in the middle of the night. He is going to have awful cavities in his teeth and you will have to take him to the dentist and get a lot of dental work. Can you imagine THOSE tantrums? Good heavens! Start off by putting water in the milk and every night, there's more water in the milk until there is no more milk. He will either lose interest in it, or will accept the water. Then put it in a sippy cup and tell him not to bother you for the cup - put it in the bed with him. If he wakes you up anyway, refuse to get up and tell him to get the sippy cup himself.
If he gets bored with that, hopefully he'll stop waking up. If he's sleeping in the bed with you, put his bed mattress in the floor beside your bed and require him to sleep on the mattress beside you. Eventually, try moving the mattress farther from your bed, closer to the door. Then finally move it to his own room.
Really and truly, you have to stop allowing him to be a little "prince". He will not have any friends when he's older if you allow him to act this way - he will treat other children as badly as he treats you.
I agree with the mom who said that perhaps there are sensory issues at play here. However, I think you have such severe discipline problems that you must address that first.
Good luck,
Dawn