Does God already know who will be in heaven? Based on Revelation 13:8, I think He does.
There are two ways Revelation 13:8 can be translated:
"All who dwell on the earth will worship him, whose names have not been written in the Book of Life of the Lamb slain from the foundation of the world" (NJKV).
"All who dwell on the earth will worship him, everyone whose name has not been written from the foundation of the world in the book of life of the Lamb who has been slain" (NASB95).
Rather than focus on which way this verse should be translated, let's use the one that says the names were written from the foundation of the world.
First, notice that this verse does not say that God wrote all the names before the foundation of the world. In fact, "before" doesn't appear in this verse. All it says is that names were written from the foundation of the world. Those who believe in Calvinism assume that all the names were written immediately, but this verse reads just as well as saying that names began to be written from the foundation of the world and are continuing to be added.
If all the names were written at the beginning, then it would a complete and finished book. But the Bible states that names could be blotted out of the Book of Life.
"He who overcomes shall be clothed in white garments, and I will not blot out his name from the Book of Life; but I will confess his name before My Father and before His angels" (Revelation 3:5).
"For I testify to everyone who hears the words of the prophecy of this book: If anyone adds to these things, God will add to him the plagues that are written in this book; and if anyone takes away from the words of the book of this prophecy, God shall take away his part from the Book of Life, from the holy city, and from the things which are written in this book" (Revelation 22:18-19).
The removal of names is an on-going process; thus, it cannot be that the contents of the Book of Life were fixed before the foundation of the world. Therefore, the idea that all the names were pre-recorded must be false.