You can use this module for working with COM-Dll's without registration.
You can use SxS manifest as well. This is the example:
Code:
    <file name="MTDownloader.dll">
        <comClass 
             clsid="{20FAEF52-0D1D-444B-BBAE-21240219905B}" 
             threadingModel="Apartment"                   
             tlbid="{AABFB2BB-49A2-4C39-8622-0DBE16C4161B}"   
             progid="MTDownloader.MultithreadDownloader"                   
        />
        <typelib 
             tlbid="{AABFB2BB-49A2-4C39-8622-0DBE16C4161B}" 
             version="1.0"
	     helpdir=""         
        />

    </file>

    <comInterfaceExternalProxyStub
        name = "_MultithreadDownloader"
        iid="{DF3BDB52-3380-4B78-B691-4138300DD304}"
        proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"
        baseInterface="{00000000-0000-0000-C000-000000000046}"
        tlbid="{AABFB2BB-49A2-4C39-8622-0DBE16C4161B}"
    />
    <comInterfaceExternalProxyStub
        name = "__MultithreadDownloader"
        iid="{2C3EA7B8-17A3-42A0-93E1-C8074BCB907C}"
        proxyStubClsid32="{00020420-0000-0000-C000-000000000046}"
        baseInterface="{00000000-0000-0000-C000-000000000046}"
        tlbid="{AABFB2BB-49A2-4C39-8622-0DBE16C4161B}"
    />
You can skip comInterfaceExternalProxyStub if you don't want to use marshalling.