The way you "free memory" for any object in .NET is to let the GC take care of it.
In the case of a StringBuilder, just set the instance to Nothing* and let it be.
I think you might be confused about what it means to "dispose" of objects in .NET. The purpose of the IDisposable interface is to provide a mechanism by which objects can release access to some shared resource, e.g., file streams. Calling Dispose is not the same as releasing memory. Since a StringBuilder does not access any shared resources, it does not need to implement IDisposable.
If you must force memory to be freed, that's what GC.Collect is for. But honestly, I've never encountered a scenario where it made sense to call that yourself (as opposed to letting the GC decide when it makes sense to perform a collection).
*I am assuming it's a class-level variable. If it was only a local variable to begin with, there's no need to set it to Nothing as it will soon fall out of scope anyway.