You're clearing the list each time you add a new book, and your save method also creates a new list, which wipes out the previous work; it causes all the input to be lost.
Here's a working version of your controller:
public class addMultipleBooksExtension {
public list<Book__c> listBook{get;set;}
public addMultipleBooksExtension(ApexPages.StandardController controller) {
list<Book__c> listBook= new list<Book__c>();
}
public void addBook(){
listBook.add(new Book__c());
}
public void saveBookRecords(){
upsert listBook;
}
}