What I suggest is get a large bag of hollow plastic balls (with holes) and a thin bat - the type you would use for stick ball. Start out pitching them to him close up (the reason you use the plastic balls
) and then move back. After a sessions of hitting few hours of practicing hitting those he will have developed his hand eye coordination for batting.
Agree. I did that with Tommy (used a regular bat but used large and then small rubber wiffle-type balls) and it seems to have helped. Every kid is a bit different, so you may have to play around with things to find something that works (also helps if it's fun). Once you have his hand-eye coordination and batting stance/swing dialed in, go for lots of reps in batting. And since not everyone has a damned batting cage in his backyard (my neighbor took his down

) you have to get creative with how you do that. We have some nice indoor batting cages a few miles away from my house, and sometimes we sneak on to a local baseball field here & there and I pitch to him. But when we just want to get a few swings in, I go in the front yard and have him hit this thing:
https://www.amazon.com/SKLZ-Trainer-Baseball-Batting-Training/dp/B0019GII3UReps are also huge with throwing and catching, of course. First thing to overcome is usually them being afraid of the ball (that's also a factor in batting). Even at the 9 & 10 year old level I'm seeing kids in Little League that try to move their bodies out of the way when they catch, which tells me they never conquered that fear. For Tommy I started out with one of those soft baseballs and told him it wouldn't hurt him if he missed. Then once he could catch reliably we moved on to a regular ball. Some kids never seem to have the fear, so you may be lucky with that.
With throwing and catching you can come up with some games to make it even more fun. One thing that Tommy & I did when I started teaching him how to pitch, for example, was to play a game we call "Ten Pitch", where the goal is to throw a certain # of strikes out of 10 pitches. I give play-by-play commentary on each pitch. We started out with an easy goal of 3 strikes and then over time have moved that up to 6 or 7. With my kid at least, if you compartmentalize the workout into small games he enjoys it a lot more and looks forward to doing it the next day.