Couldn't you use the standard Grails paginate
tag, but in place of:
[books: Book.list(params), bookCount: Book.count()]
Do something like:
[books:list.drop(params.int('offset')?:0).take(params.int('max')?:10),
bookCount: list.size()]