Is it possible to do something on a specific block number? (e.g. publish a contract or execute a transaction)
Transactions are not guaranteed to happen on the next block or any future specific block, since it is up to the miners to include transactions and not up to the submitter of the transaction. This applies to function calls/transactions and contract creation transactions.
If you want to schedule future calls of your contract, you can use the Ethereum alarm clock.