Whitney, You said it "admittedly, I shout at him a lot and spank him b/c he is SUCH a difficult child to deal with. He's always whiny and in a bad mood a lot of times." You are the one causing the problem in my opinion, do you know why???? Because I have also done the same and ended up with the same result, all be it not so bad, but my daughter is very difficult, very bright, but very very stubborn. I bet he wants to hurt a dog or a baby because he wants to be in control of something because he doesnt have control in his life as he is always being shouted at. My daughter loves to pick up our cat even when he crys because she like the fact she can control him, when we first got him I caught her telling him off like i tell her off, (verbally) but it showed she wanted some control.
I dont belive your boy has problems other than behaviour directly linked to parenting, it does not sound to me like he was a born killer or anything weird.
You have to be a calm parent, get the book "parenting the strong willed child byrex forehand and nichokas long, i have it, its my bible. They say the main problem that causes childrens bad behaviour is that we tel them what to do and ask non stop questions, they say to try for 5 mins a day to "attend" sit down and watch your child play, DO NOT tell them what to do eg, put the red brick on the blue one. or ask questions, what are you doing with the car, just attend which means describe what he does and tell him his good behaviour, you think its simple but its hard when you have habits, but when i did it for the first time, my daughter just suddenly came up to me and said i love you mummy, you have to say things lke, your building a high tower, you are smiling at your brother, you are putting the red car in the garage, you are playing nicely, you are drawing a cat etc etc, keep doing it.
Time out is also a must, do not shout at your child, write down house rules, no shouting, for all, and if your child misbehaves give them a calm chance and tell them what they need to do or not do, if they dont, do not shout, take them to time out, calmly say i am sitting you on time out because you hit the dog, you will sit here for 4 minutes, keep returning him calmly if he gets off, even if it takes an hour and them screaming, they soon pick it up, at the end of 4 mins, (my rule is the last min has to be quiet) you go and say, at their eye level, calmly you were sat here becuase you hit the dog, they then have to say sorry, and its all forgotton,
you have to be calm to have a calm child, its tough but its the only way.
Keep in touch but buy the book!!!! and dont blame yourself just do something now, I am still improving but it makes a big big difference and it doesnt take long, we now have loads of stickers for good behaviour, always over praise good and give not much attention to bad, just time out. x