Commerce, how to show 'view' of 100 products without speed/loading issues I am attempting to work out my own delivery/collection slot setup.

Each delivery 'slot' is its own 'commerce product,' 10 x 1 hour slots per day for 10 days - 100 slots to span 10 days. Pick a slot and add it to the cart.

For the year I think there is around 4000 variants in one spreadsheet which i can import with feeds - so I have all the raw 'product data.'

Only thing is when I create a view of the 100 products it seems to get bogged down and takes ages to load - sorry for being non-technical.

Below is a screenshot of what I have and would like to achieve, how can I display my products as below but rapido!
As the commenters above indicate, there's nothing in particular that should be causing this slowdown. You'll want to look into what might be happening during the render phase of your View and see if some Views query caching and / or render caching might help. The challenge, of course, would be preventing double bookings of fully utilized time slots - but maybe you could easily invalidate the cache in those cases.

If anything is causing the slowdown, it could be price calculation across 100 products happening multiple times per pageload. Commerce by default runs price calculation to determine if an Add to Cart button should be enabled or disabled and also to display the calculated price to render on the product page. That shouldn't be coming into play if you're just rendering product entities directly - typically you'd only see that on the product display node, and you could easily prevent it by editing the Views field to simple display the price as loaded.

To check out what's happening w/ price calculation, you can simply enable the Rules log and see if it's firing off a bunch of rules and then figure out how to disable it. I think Views caching with some smart invalidation as products are purchased is the right thing.