The biggest problem you'll likely have is that any threads you create won't automatically have a hibernate session attached to them. So if you need to do anything with your domain, you'll need to wire up stuff manually. I looked into it a while ago and it was doable, but I ended up going another way so don't have a finished example to talk about.
I think that there were also a couple of plugins out there, like the Background Thread plugin that will spawn a thread for you and attach the appropriate hibernate stuff. I'm not sure that the plugin is still maintained though so it's possible it won't work on 1.3 or later.
You might also be able to instantiate a valid transaction in your thread by using withTransactionlink text:
MyDomain.withTransaction { status ->
// GORM stuff that needs a valid transaction
}
Note that each thread would then have it's own transaction and that it wouldn't participate in the same transaction as the other threads (so you wouldn't be able to roll everything back if one thread fails).