To do this, you must sample your alpha texture in the depth buffer creation fragment shader, which is ShadowCasterFP in your code. When you sampled the texture, you should discard pixels below a certain alpha level, or do a clip:
if( color.a<0.1 )
discard;
clip( color.a<0.1?-1:1 );
//where color is your sampled texture at the current fragment
These two will do the same, which is not outputting any color to your rendertarget/depthmap.
EDIT:
You'd have to insert the above code (either the discard or the clip) to your MVSMShadows.hlsl to the beginning of the ShadowCasterFP function. But you also have to sample a texture resource and a sampler there which you must declare and upload to the GPU beforehand. You can declare a texture and a sampler like this:
Texture2D<float4> myTexture : register(t0); //texture bound to the first texture slot
SamplerState mySampler : register(s0); //sampler unit bound to the first sampler slot
Then you must sample that texture while creating the shadow map:
float4 color = myTexture.Sample(mySampler,In.texCoords);
So you have your fragment color which contains an alpha. You check that alpha and discard if it is too low with clip or discard.