Assumming you release your source under an open source license, basically no.
The Open Source Definition and Free Software Definition both demand that source code is accessible to everyone who gets distributed a binary. That source might be distributed with the binary, easily accessible on the web (and the binary contains a pointer to this position), or on request the source code is sent to the requester. The last option can ask for money for mailing it, but not more. That last one is pretty restrictive already today.
If you do not distribute much of the binaries (because you have a webservice for example), you can restrict it more. For everyone who don't get the binaries, you can charge for access to the source as you want it.
But in each case there is a catch: Everyone who gets hold of the source code is allowed to redistribute it under the terms of the open source license you've choosen. That basically undermines your business model of charging for access to the code. If you want this business model, you don't want open source.