Block is collection of transactions.Who can decide Number of transactions per block? and How transactions are selected in block?
and How does the priority works for fee transactions?
Transactions are broadcasted by anyone in the system and at random intervals. Which transactions, of all the ones broadcasted, are included is very dependent on the miner, as he/she is the one who groups them up and includes them in the block. As Nate noted below, there is also a 1MB block size limit which limits how many transactions can be included in a block. This limit is to prevent huge blocks that clog the network and may be removed if the number of transactions in the network ever grows such that the limit is a serious factor.
Good miners accept all transactions with the standard 0.0001 BTC fee (which is mainly a spam prevention measure). Bad miners are selfish and avoid including transactions to decrease their propogation time. For example, look at this block to see an example where a miner didn't include any transactions except for their own reward transaction.
If you look at https://blockchain.info/ then you can see how many transactions are included in each block.
As far as priority goes, again it depends on the miner, but in general miners like bigger fees and smaller transactions and may prioritize them that way.