So the question is... Is it possible to have a single signature that requires two public keys to create it?
ECDSA is based on ElGamal signatures. There are several variants, but let's just consider the basic signature scheme:
Given:
Generator g
Private key x
Public key y=g^x
Message m
A signature (r,s) on message m is valid if g^m = y^r * r^s
As gmaxwell points out, it is possible to compute y (public key) from the signature and message as y=(g^m/r^s)^(1/r). To validate the signature, you would of course have to check that this public key is the one you expected.
It seems possible to make a signature from two public keys A and B, such that g^m = (A*B)^r * r^s
Obviously this would be incompatible with the current bitcoin protocol, but it does seem possible in theory. I'm not entirely sure of the security implications of such signatures. I'd have to think about it some more.