If you won't find a good solution and will have to proceed with own conversion the following may help you.
Assume you use XNA framework microphone+wav like below: http://damianblog.com/2011/02/07/storing-wp7-recorded-audio-as-wav-format-streams/
Then to get 8khz instead of 16khz you just need to drop every second value from the data returned in microphone.BufferReady event. Or it is better to use interpolation (instead of dropping every second value you saves average of two values)
for (int i=0; i < arr.length/2;i++) res[i] = (arr[2*i]+arr[2*i+1]))
Also don't forget to set correct value for sampleRate (8000) in WriteWavHeader function