I think you can do something like this:
session
.Query<Answer>()
.OrderByDescending(t => t.timestamp)
.GroupBy(x => x.timestamp)
.Select(x => new
{
EventName = session.Get<Event>(x.eventId, LockMode.Read).name,
EventId = x.eventId,
UserId = x.userId,
TimeStamp = x.Key
}).ToList();
You might want to chain an AsEnumerable call between the GroupBy and the select if the Select call in not compatible with your provider.