WAV decoding method

You can use bitRead() to get the individual bits from your byte, then write them out to the appropriate pins. You'll get a little glitch, since you are not writing all of the bits at the same time but I assume that may be fast-enough so you don't hear it, and if you have a filter it should (hopefully) get filtered-out. (A real DAC doesn't get clocked until the data has had time to settle, so the analog output doesn't change until it "knows" what the next analog value will be.)

There are [u]port commands[/u] that allow you to write a byte at once, but I've never used them so I can't help you with that. And, the "bits" would have to be wired to the correct I/O pins in the correct order. And although the timing should be better, real-world physics mean that all of the bits won't be written at exactly the same time, and you'll still get undefined in-between values/states.

Is DAC method support for 44,100 hz music play ?

I think the Arduino is fast-enough for that (as long as you're not trying to do to many other things at the same time), but I don't really know how fast it can write-out a bit in a "fast loop". You'll need to use the micros() function to time the samples. Please double-check my math, but at 4.1Khz I get about 23uS between samples.