Are you giving him milk straight from the fridge? If yes, it could be too cold. When we transitioned my sons to drinking milk from a cup, we had to warm it up a bit (body temp, like breast milk) first. If it feels "neutral" on your finger, it should be fine. Also, have you tried mixing it with breast milk (or formula, whichever he's used to) and slowly working up to straight whole milk? We actually started by giving our boys yogurt (again, whole milk) before actual milk, and then only started mixing it 1/2 and 1/2 with expressed breast milk. That worked well.
The temperature thing was really big with my kids with food, too. Think body temperature-- not hot, but not cold.
I have found with the chunkier foods finger foods are great if that's what your child wants. Give him a few pieces of cooked chicken on his tray (SMALL pieces-- not bitty, but not as big as diced) and let him feed himself to get used to the chunks. Wait until he's swallowed the chunky food and then sneak in a spoonful of the mushed up food. Feedings will be slow going for a while, but worth it. Keep in mind that a lot of stage 3 foods are SALTY and that may be making him gag, too. Skip the "toddler" foods and feed him what you're eating, only mashed up (either by hand or in the food processor) with a "compliment" of chunkier finger foods. He'll catch on and will gradually begin eating more and more of the thicker foods. Oh, and if you are feeding him chunkier foods on a spoon, make sure it's only one chunk at a time and that it's kind of wet so it'll mash up in his mouth easier. My secret weapon is winter squash-- a little of that on the spoon with a piece of chicken and my kids gobble it up.
My boys LOVE the Gerber banana puffs. That may not be the actual name of the product, but it's in the shape of stars and a great first finger food. Especially since they don't have corn syrup in them like Cheerios do.
Patience is key, though we all know it is very difficult at times!!