I don't think you can avoid it. NHibernate details with "entities", rather than database rows and entities have an identity.
Consider what would happen if you were to read back some of those records, modify them and try to save them. NHibernate wouldn't know which database row to modify. Of course, you are not going to do that in your case, but this is exactly what NHibernate is designed to do.
So you would either needs to create an artificial ID or just save them without using NHibernate (ie. using direct SQL, which you can run via the NHibernate ISession object if you wish). If database space really matters (ie. you're going to have millions of these), I'd recommend the latter method, otherwise an artificial ID is pretty easy to add.