Not sure that geolocation is a complete solution - nor that you shoul block access using .htaccess
That someone is publishing spam on your system implies that you've got some custom code running there - and AFAIK there's no easy way to do efficient lookups direct from the .htaccess file.
Certainly using geolocation may help - but you only need to control access to the bit of functionality which allows publishing of content. There's a free database you can run a local copy of available here.
If it were me, I'd use this as part of a scoring system, also incorporating
1) self-moderated posts - require user to provide an email address - when they post, don't publish until they click on a link you email to them
2) admin moderation - maybe you don't have time to moderate every post - but what about checking the first N posts from a particular user?
3) use spamassassin to identify spamming posts (NB the more spam posts you can capture (but obviously not publish) the better this will work)