If you are attempting a 0-confirm double spend then which transactions (if any) are included in the next block is irrelevant. Your goal is to simply complete both transaction prior to either merchant getting notification of the other one.
The "problem" is that the network is fairly quick at passing transactions from one node to the next. Unless you have located an inefficiency in the network, a bottleneck, or actively degrading network performnce is unlikely you will complete both transactions before the merchant sees both halves of the double spend.
An effective countermeasure would be for the merchant to introduce a short delay between the time they detect your 0-confirm transaction and when they give you access to the purchased item or service. Say you execute a perfectly timed double spend. The merchant sees their transaction and waits 60 seconds. 60 seconds is a long time for transactions to not propagate the network. If at any point in that 60 seconds the merchant sees the "other" transaction you have failed. Unlike other forms of fraud you will lose the funds as your double spend is irrevocable. It will just be luck on which merchant gets paid.
Also many transactions are not irreversible. Software which has a license key can have the license key revoked. Many giftcards can be reported as stolen to freeze the funds. Any subscription based site would grant you at most a few seconds of service before cutting you off. Product which require physical deliver are never going to be shipped fast enough to execute a double spend.
The risk of a 0-confirm double sped is low but security can be improved by designing ultra fast low latency "super nodes". A service provider could setup a network of Bitcoin nodes around the world with low latency links between them. Each of these nodes would be running modified version of bitcoind to maximize the number of connections, establishing thousands or even tens of thousands of connections to peers. No matter where the two halves of the double spend originate it would be only a few hops to a super node.
If a merchant only accepts transactions from the super node network then you would be unable to complete the double spend. Either the network has seen both transactions and the double spend is detected or they haven't in which case one of the merchants won't give access to the item purchased.