I found the code I used to generate the graphic you are referencing. (I thought I had deleted it.)
The code from this post is somewhat optimized, and it's made specifically for an inward growth: the particles are always started form the origin for the DLA simulation, not from a random outer position. Also, the "seed" of existing particles is a spherical shell, which made it unnecessary to handle escaping particles. Instead of rewriting this code to work with a central seed, I'm going to give you the original code I used for the image you referenced, with some caveats:
It is very slow. It was a quick experiment not intended to run fast. I think that Mathematica is not the right tool for doing a DLA simulation. It's good for prototyping, but the performance will be awful. Also due to the procedural nature of the algorithm, it's not much more difficult to implement this say, in C++ or Java, than in Mathematica. I recommend that if you are serious about making a DLA simulation, use a low level procedural language such as C/C++/Java/FORTRAN/Pascal/etc.
I tried to use only v7-compatible functions but I don't have v7. If something doesn't work, let me know which part and I'll see if there's a quick fix.
WARNING: If you include the Dynamic part (i.e. the Graphics3D part), it might use up all the memory and crash the front end after a while. I do not know if this is a front end bug or not. It is okay to just not evaluate that cell. In that case you won't see the structure growing in real time but the results will still be recorded.
If you prefer the original Point-look to the Sphere-look, just replace Translate[Sphere[{0, 0, 0}, 0.4], Dynamic@points] by Dynamic@Point[points].
The code:
points = N@{{0, 0, 0}}; nf = Nearest[points]; nd[p_] := EuclideanDistance[First@nf[p], p] (* put this in a separate cell an evaluate on its own *) Graphics3D[Translate[Sphere[{0, 0, 0}, 0.4], Dynamic@points], Axes -> True, BoxRatios -> Automatic, PlotRange -> (15 {{-1, 1}, {-1, 1}, {-1, 1}}), PlotLabel -> Dynamic@Length[points]] (* this goes in a separate cell again *) Do[ r0 = 2 Max[Max[Norm /@ points], 5]; r1 = 1.5 r0; pt = r0 Normalize@RandomReal[NormalDistribution[0,1], 3]; While[Norm[pt] < r1 && nd[pt] > 1, pt += RandomReal[NormalDistribution[0,1], 3]]; If[Norm[pt] < r1, AppendTo[points, pt]; nf = Nearest[points] ], {100000} ]
Stop the simulation when you like using Alt-.. The results computed so far will be stored in points.
Graphics3D[Table[Point@Accumulate[RandomReal[{-1, 1}, {300, 3}]], {10}], BoxRatios -> 1]$\endgroup$