The absolute limit is the size of the block, which is currently hard-coded at 1,000,000 bytes. Each transaction takes up a variable amount of space, but ~250 bytes is about right for a simple (one-input one-output) transaction.
However as soon as a block is solved thereit is no benefit in hanging onnot possible to extend the block andby adding in more transactions, as opposedthe proof of work has to be redone, so broadcasting it immediately is the only sensible thing to do. SoSo the number of transactions in a block is actually a function of the number of transactions being generated over a time period and the time taken to solve a given block.
Blocks commonlyused to contain fewer than 200 transactions. The and the largest number of transactions in a block to date iswas 1,976 at the time this answer was originally written (May 2013). In meanwhile (November 2017) the average number of transaction per block is well above 1500 with peaks above 2200.