List nodes from a taxonomy based on a field
So you need to do the following:

1) Create a view for products


Install Views Field View module
http://drupal.org/project/views_field_view Create a view for 4
products. Make sure it has contextual filter for term id set. 
Save it


2) Create a taxonomy view   


Create taxonomy view, set display as block, so you could output it in
a block
Add 'taxonomy term parent' filter and make it equal to 0. This way you'll select only parent terms   
Select Views Field View in Fields and set it to output a view for products  
Save  


So now you should have a block which outputs parent taxonomy terms and under each term you have a list of products.

Let me know how it works.