Hope I helped! This was a bloody nightmare to do. I had to count form Bulbapedia for at least 20 minutes! XD It's okay, it makes me laugh if anything else! :)

Here's my source: http://bulbapedia.bulbagarden.net/wiki/Ash_Ketchum
I counted everything but Temporary Pokemon because he didn't catch or even own those. I probably made a counting error at so me point because I'm not the best counter in out there, so you better double check my answer, comment any errors and I'll edited them into the answers!

Remember these will not add up to the number of Pokemon Ash has, due to most of them having dual types. Italics means that the Pokemon was released, -Pokemonname- means it was traded away, (S) means it is only of one type and / means it evolved. Also Ash technically owned a Raticate through trade, but for only part of an episode as well as a Beedrill, and a Haunter/Larvitar who travelled and battled with him but were never actually caught.

NOTE: I did this with Microsoft Excel and it's wonderful functions. :D
Also note that some of these Pokemon were not particularly caught, but by other methods like trading or hatching from an egg. However, all of these Pokemon were once in his possession (and were on the source)

HOLY WITENY"S MILTANK! All three of the other answers but mine where posted while I was typing for like 20-30 minutes strait XD also there are a few errors like that Ash actually caught 3 dark types. Not to be rude or anything. This is still a pretty good answer, it'll be helpful. Also, my answer included all Pokemon but Temporary ones because Ash never caught them.