How to delay a signal by D degrees
Given that you have limited number of samples, you can perform a Discrete Fourier Transform and represent your sound in frequency domain (frequencies and phases). After that if you want to apply a delay of D degrees you can simply use the known Fourier transform below:

$$ F\left \{ f(t-\theta) \right \} \rightarrow \hat{f}(w) \times e^{jw\theta} $$

Assuming that your sound is a number of sinusoids added together; to apply same phase delay to all frequency components is multiply a complex number $ e^{jw\theta} $ where $\theta$ is your desired phase delay. 

On the other hand if you want to apply the same time delay to all your frequency components you should calculate the appropriate phase angle shift to be applied to each frequency component. Assuming $t_{delay}$ is the delay you want to apply, you can obtain $\theta_w$ to apply with
$$ \theta_w = w\times t_{delay} = 2\pi f\times t_{delay} $$ 

In which, $\theta_w $ should be calculated for each frequency bin of your results of your DFT. And the reasoning behind this can be simply explained as below. Assume a signal with sinusoid components.
$$ f(t) = sin(2\pi f_1t) + sin(2\pi f_2t) $$
If I want to apply the same phase angle shift to both signals (I don't know why anyone would want but anyways):
$$ g(t) = sin(2\pi f_1t + \theta) + sin(2\pi f_2t + \theta) $$
And to apply a time delay:
$$ f(t-t_{delay}) = sin(2\pi f_1(t-t_{delay})) + sin(2\pi f_2(t-t_{delay})) $$
$$ f(t-t_{delay}) = sin(2\pi f_1t-2\pi f_1t_{delay}) + sin(2\pi f_2t-2\pi f_2t_{delay}) $$
As you see the phase angle shift $\theta$ you should apply is different for each frequency component.

edit: If you have the proper MATLAB license you could try checking out the doc and source of delayseq function (it's in Phased Array System Toolbox).