can somone create guaranteed future transaction? How to create a transaction in Bitcoin that can be spend after a certain period (e.g. 1 month) such that:
1. It is guaranteed that the transaction will be valid after 1 month (the account has enough BTC in it).
2. The amount to be withdrawn is not locked for that period.

Lightning network will allow this to happen. However, the amount must be locked, which violates the second condition above..
You can create a transaction that has a lock time set. If a transaction has a lock time, it cannot be confirmed until after the lock time has passed. This mostly meets the first constraint.

However the inputs that it spends from could be spent by another transaction before the lock time of the original has passed, thus meeting the second constraint.

The caveat is that the lock timed transaction will only be valid if the output that it spends from is not spent yet. Bitcoin does not use accounts so there is no balance.