Possible to estimate next difficulty based on terahashes?
Is it intended for there to only be a finite number of blocks solved
  in a certain timeframe?


Yes.  The intended rate is 1 block per 10 minutes, which is 144 blocks per day, which is 2016 blocks every 2 weeks.

To estimate the difficulty, flip around the "time to generate a block at a hash rate" equation

difficulty=((Time for a block to be found in seconds)*(hashes per second))/2^32

Where the time is 600 and the hashrate is whatever you want.