Sell seats on a bus, boat, ride, where you have regular repeating event departures, and limited seats.
Purchase quantity = seats.
All seats are used at the same time.
The maximum number of seats available for the resource will equate to how much room is available. Each seat is essentially a different resource and any tracking is on it's own unique calendar.
The system may allocate seats randomly, and there is no guarantee that group bookings will sit together. You should manage this issue offline.
The assumption of this approach is that multiple bookings from different people will fit in to the total availability. If instead you want to allow only 1 booking per timeslot, but charge on the basis of head count, then please make the product a single resource (single seat, max quantity 1), and use the variant pricing to determine prices for different groups sizes. Or use a different product booking type, where the quantity relates to the number of sessions, and not the number of people.