My kids like to fight... a lot. And it is always over some toy that everyone wants to play with RIGHT NOW or they just might keel over. And they like to whine, quite a bit for the same reason. Part of this is just age-appropriate behavior, even though it is seldom appropriate. Whining and fighting is to be expected, and it is the perfect opportunity to teach children selflessness.
LIMIT TOYS: I find that the more toys my children get, the more their appetite for more "stuff". It is a great idea to put limits on the number of things a child receives every month. You have to figure out what works for you, but I think no more than one small thing each month is enough. Larger toys can wait for birthdays and Christmas.
LIMIT SNACKS: For the same reason as above. Not only is it good for their health to limit junk food, but it helps to lessen the "gimmies".
DONATE: Set a limit on the number of toys your child has at any one time. If new things come into the home, let your child choose an older toy to donate to needy children. And bring your son or daughter along with you so that they can be the ones doing the donating. They will be excited to help others.
ROTATE: Too many toys out at once are overwhelming and encourage a child to expect that such abundance is their "right". We keep some toys in our cellar and rotate them every couple of months. The kids like it better with fewer toys out anyway, and it is cleaner.
EXPECT SHARING: This is a hard and fast rule... not an option.
NO TOLERANCE FOR THE GIMMIES: The bible says to "Be happy with what you have." Hebrew 13:5. My kids have memorized this verse. They are far from perfect at carrying it out but at least they can be reminded of God's loving standard.
Kids will be kids... look at selfishness as an opportunity to teach selflessness, and greed as an opportunity to teach generosity. The Lord allows us to teach them young! Be firm and loving, and let God do the rest.