I would like to create a list view of products with option to sort it with product types. It is much like the following example
list view products with sorting
Can I customize the product list for such an application
You can. You would probably want to override the Product Grid component and replace it with your own which you can do with the replaceComponent API.
Thanks, Can you give a bit more details?
I found a replaceComponent function in //imports/plugins/core/components/lib/components.js
Try checking out the docs here and see if that helps any. It should cover replacing a component in great detail.