Is it possible to use one DAC to process signals from different channels that are delayed at different times?=
You can certainly do this in principle, but you'll need a (bit/lot) more hardware. You can (in principle) use several sample-and-holds on the output of the DAC, triggering each S/H at the appropriate time to grab the DAC output for that particular output channel. Then a second S/H will transfer the output of the first to the channel output at the desired delay.

Given the current costs and size of DACs, I find it unlikely that this approach will have much to recommend it.

EDIT - In looking over the OP, I realize that I've underestimated the amount of extra hardware required. If the microcontroller is putting out samples at 40 kHz, and you have 4 channels, the overall throughput rate for each channel is 10 kHz, for a per-channel period of 100 usec. To delay this by several milliseconds will require a chain of S/H's consisting of 10 S/H per millisecond of delay, or on the order of 10 to 40 S/H's for 1 to 4 milliseconds. This would seem to be something of a burdensome (not to mention cumbersome) requirement. So I would not recommend using discrete S/H's.

Instead, you would want to use a bucket brigade delay. Well, you would if you could find BBDs of the desired length, and as far as I know you can't.

So my original conclusion holds - this isn't a very useful approach. 

I would recommend doing the delay in software in your microcontroller.