should he book the flight now, or wait until last few days, in case he was invited for another interview.
If your friend has a bit of time to spare, I think a reasonable first step would be to check the flight options that are available right now. If it were me, and if it is feasible (depending on where your friend lives and which airport(s) is(are) nearby), I might narrow down my search to direct-flight options since I don't want to be sitting in airports all day long.
From this information, you can get an idea of the current availability and, time permitting, you can occasionally track this as time draws near for the interview to see if you need to act (if availability is dwindling rapidly) or if you have time to wait for any additional on-site invites to roll in. I realize that folks typically don't have a lot of time to devote to tracking flight availability, but it doesn't hurt to check it every now and then.
I personally don't like to delay booking the flight less than a week prior to the interview. I should add, though, that, if your friend gets additional invites, nothing is stopping your friend from booking a flight from the airport near the institution he/she is interviewing at to the next interview destination.