This is explicitly what a finalizer is designed to do. Write one to release the unmanaged resource, the CLR will automatically call it after the object got garbage collected. You can certainly implement IDisposable to get it released early but it is not a requirement. And can be skipped if the resource allocation is not impactful. The kind you describe matches that of a COM object. Whose .NET wrapper doesn't implement IDisposable either.
Keep an eye on basic resource usage of your program to ensure that this isn't a problem. It can be hard to judge if you don't enough about the actual resource that's being used.