What you are asking by duck typing is a loose typing, and .net is by all means static typing, at least until the 3.5 version.
if you follow a path of those kinds of though, and type liberation you have:
classical frameworks
=> prototyping frameworks
=> duck typing
.
In js, obviously you can achieve almost all this, but in c# or vb.net, you will find yourself in a classical and bureaucratic, when relating to types.
You can loosely create those types in runtime, but it consumes processing time, and until it is in memory, it can be really slow.
If it is by all means necessary, you have two paths(, involving reflection):
You can create those classes, which will be probably a property holder, using property info, and then create a type and insert into it. You will have to create a place to put them into, like a assembly, or a module. you will have little support or no support from your current methods, unless you think in a plan of action for that, and be worried of the security issues it can imply.
You can follow the most painful path and use reflection.emit, to create your type straight way in the CLR, which can grant you many, many advantages. It can prove itself a pain to do it though.
If you find a way, please, I would love to hear about it, because duck typing it is great. And independent and brave people have to be praised.
Good Luck to you