Query for specific taxonomy that executes a particular loop depending on volume of posts?

Just check the total number of posts found:

if($your_query->found_posts > 20) ...

and decide how do you want your mark-up to be.

If want to see how many products are associated with a certain product_category term, use get_term() and check out the ‘count’ property