Is having AES tables on a distinct physical page enough to avoid cache timing attacks? Reading about typical cache timing attacks, they seem to be based on intentional eviction of cache lines and timing how long an operation takes.  It seems as if those attacks rely upon these tables being hardcoded constants in read-only sections of an executable, and are therefore subject to sharing memory pages.

If you ensure that your AES tables are on physical pages that are private to your process, is that enough to thwart timing-based attacks?  In this situation, an attacker running as a normal-privileged process on the same machine would not be able to perform such tricks as clflushing the cache lines containing the table.

Note that this technique also requires that the contents of the pages are also unique, not just private: some operating systems might notice memory pages with identical contents and coalesce them to a single physical page as copy-on-write.
No

You are misunderstanding how such attacks work. It's not that your page gets shared to some attacker process. Attacker might not even be present on your computer, only measuring time over internet.
Such attacks only depend on fact that if you access index 5, then every next access to index 5 will be faster. It doesn't require any method to remove data from cache (it will go away on it's own), but those can make attack faster.

For example here is attack that only used a server that included a cycle-exact time. No attacker program was present on victim machine.

As a side note: When process is attacker running as a normal-privileged process, it has access to all other normal-privileged processes in many OSes (for example Windows), so attacker can simply read key.