How can a miner choose which transaction to include in the next block?
Do I really need to put more than 1000 transactions [in a block] to see my transactions going in different blocks


No.  You can limit the size of the blocks you produce by changing the -blockmaxsize option.  For example, if you only want to be able to add a single 250-byte transaction plus the 80-byte header and 1-byte (in this case) transaction count, you can start Bitcoin Core like this:

bitcoind -testnet -daemon -blockmaxsize=331


Then you can use the prioritisetransaction RPC to prioritize tx1 over tx2.

Regarding your second question, estimatefee and estimatepriority may not return useful results on testnet because transaction volume there is low so almost every transaction goes into the next block.

You may find it more useful to experiment with regression test mode which will allow you to create a private testing network and completely control every block (as well as mine blocks instantly).