Just use the non-generic registration overloads (the ones where you need to pass the 2 Type
objects.) Then provide the open generic types of both your interface and the implementation:
services.AddScoped(typeof(IGenericRepository<>), typeof(GenericRepository<>));
In your controller, add a dependency for a repository of a specific type (a closed generic type):
public HomeController(IGenericRepository<Lookup1> repository)
{
...
}