I've done this by keeping the current highest number in a table (by itself). When I have to insert a new record, I read the table, increment the number, use it for the new record and save it back to the table. Or you could use a count query to determine the current number of records.
Of course, there is still a problem when deleting records. What do you want to do with the open slots? Reuse them on the next insert? Change all the keys in the remaining records?
Or did you mean you just want to number the records as you are displaying them? You could insert them into a temporary table with an additional autonumber column before retrieving them for display. Just thinking out loud! Ideas are a dime a dozen...
Frank