Should I create new table for each User to store their product List?
Creating a unique table for every user to hold their billing/purchase details would be an absolute nightmare to maintain.

It would be best to create different tables for each entity. For example, you could create one for all users, one for all bills/purchases, and one for all products. You can connect the user table and billing table by a user ID. In the billing table, each row can have a user ID to signify which user that purchase record belongs to. The user ID would be a reference back to the user table. The billing table should also have a reference to a products table which would hold the product name, stock left, etc.

This is just an example though and depending on your system design, you may need more tables.