Sure you could. You could add the course as a product and set the price to booking per person. So quantity 1-8 would be number of persons. Since v4.4 it offers variations as well, so you could do stuff like +caddy or +clubs with an add-on price.
Products are multi-lingual so you could offer it in various languages and it allows also for 'offline payment' methods so you could allow people to pay on arrival. (Naturally creditcard and PayPal PayFlow are also a good option to get the client the cash upfront)
By setting the products to 'non-shippable' the whole shipping section (address / shipping carrier etc) will automatically be avoided. Confirmation mail etc is all done automatically and you could configure the system to only allow registered checkouts (members only) or anonymous checkouts (anyone can rent a course). Invoices are only available to registered users, but the client can see in the backend how sales are going from both.
Since its an ecommerce system and not a reservation system, you'd have to build a custom module that'll combine reservation dates with courses. (date, time, course, availability, number of persons and order-id).
Then by adding 2 custom fields to the 'course product' (date and time of reservation) you could check those two fields against availability from the custom module.
This can be done by writing a code behind for the product list widget that basically has nothing more to do than check validation of date and time against the custom module. (If free, then 'Add to cart is enabled - if already booked, then display message and disable 'Add to Cart')
After the order has been placed, you'd need to write a little code to store the 'reservation' back into the database, or the client could do that manually if he'd like to verify it first but then it's up to the client to keep the custom module up-to-date.