Unfortunately, I don't have any excessively creative ideas. The obvious one is to widen your driveway at the top--in the direction of the tree. Make it at least wide enough for a second car to fit in that space. That way, a second car could park there without blocking access to the garage.
I wouldn't like the solution that one your neighbors across the street did--running the parking in a "U" shape parallel to the street. That'd chew up your entire from yard. and you've said (though it isn't clear from the photo) that it's really too steep anyway.
As for guests, at least you'd be creating an additional space and providing some maneuvering room so that if one guest knew he/she had to leave early, they could park in the small added space. You'd still be putting your car in the garage and have space on the driveway for a few additional cars. And for really big get-togethers, you might ask one of your neighbors (such as the one across the street) if one or more of your guests could park there.
Hope that helps.