The only way would be if enough balance was on hand in each of enough separate outputs (or groups) to uniquely use them for each future date.
Does that sound right?
No. Not quite. The bitcoin protocol has no concept of balances. A new transaction redeems old transactions. Transaction can only be redeemed once. Think of coins and the network is a forge that can combine them and split them. You can write a transaction which can't be included in the blockchain until a particular time/height.. but it has to identify which coins it's spending. Not balances. Groups. Etc. The specific coins. And until its in the chain you could spend those coins out from under it.
Yes, Understood. I was using the term balance and group as a way of explaining what I meant as in a group of outputs acting as a balance that I could use as inputs. Such that if I could group outputs into sets where each set totaled "a balance" then each set could be used as inputs to create a separate future dated transaction.
I'm sure I understand how it works but didn't use technically clear language. I also understand that until the transaction is inserted someday the outputs could be used and accepted that to be similar to Paypal when someone doesn't have enough funds on hand.
The main problem with this that makes it useless is that at the time of subscribing the customer would have to have on hand enough for the whole subscription term and enough separate outputs available for each period transaction. And then they would have to not accidentally use them. Basically a special wallet dedicated to the subscription would have to be setup to keep things straight.
In other words it's all too difficult and fragile to be workable this way.