By Adam Nagy
Unfortunately, it is not possible. This is not specific to Inventor or the other Autodesk products, but is the case in many applications loading AddIn's. The problem is that for various reasons, one of which could be e.g. speed, applications tend to load the AddIn into the default AppDomain. And inside .NET you cannot unload a single assembly, you can only unload the AppDomain the assembly was loaded into, as also mentioned here in context of AutoCAD: http://through-the-interface.typepad.com/through_the_interface/2008/09/tired-of-not-be.html
Note: you can logically unload an Inventor AddIn inside the Add-In Manager, i.e. its Deactivate function will be called where the AddIn can remove its user interface, stop listening to events, etc, but the dll itself will not be unloaded from the Inventor process.
As Kean says, probably the best thing to do is use Edit and Continue instead which works fine on 32 bit. On 64 bit, however, it does not work yet. But at last it seems to be coming in VS 2013 :) http://blogs.msdn.com/b/dotnet/archive/2013/06/26/announcing-the-net-framework-4-5-1-preview.aspx
I had a look at modifying an existing AddIn so that it runs in a separate AppDomain but it's not straight forward to make it unloadable. Even if you create your AddIn class in a separate AppDomain you might still not be able to unload the AddIn dll itself.