This is not for the faint of heart.
First you need to get a hold of shellres.96.dll either by copying it from the Windows directory or extracting it from the ROM.
Then you have to edit the first 16 bitmap resources using a program like Resource Hacker.
After doing that, you have to sign the DLL with SDKSamplePrivDeveloper.spc (you'll need the .NET Framework 2.0 SDK and the WM5 SDK).
Then you have to install SDKCerts.cab on the device, and then copy the new shellres.96.dll over the old one, and soft reset.
I've already done this for the Cartman beachball, which you can download
here
Remember you need to install
SDKCerts.cab on the device BEFORE installing any custom beachballs!