802.1Q allows different 4094 VLANs, 0 and 4095 are reserved and can't be used.
QinQ (802.1ad) defines inner and outer tags, theoretically allowing 4094^2 VLANs.
Shortest path bridging (802.1aq) uses 24 bits for the VLAN ID, allowing 16 million VLANs.
VXLAN is a slightly different technology in that it tunnels over UDP/IP. This produces much more overhead, eating into the MTU or requiring baby jumbos. The upside is that the tunnel can be routed, the difference to other tunneling protocols being the integrated VLAN service, so a single tunnel can link virtually unlimited L2 segments.
Essentially, you can use any L2 tunneling protocol instead of 802.1Q VLANs - of course, a tunnel wouldn't be as light-weight, as easy to use and usually only point-to-point.
In a completely different approach (and probably more to your intention), you could set up locally administered addresses (LAA) on your NICs, dedicating a few bits to the "VLAN ID" and use MAC-based wildcard filtering on the switches - if you can find switches supporting this. However, since the MAC address and thus the "VLAN ID" originated on the client (instead of the VID on a switch) there wouldn't be any significant security.