public class TenantMessageHandler : DelegatingHandler
{
    private readonly IServiceProvider _provider;

    public TenantMessageHandler(IServiceProvider provider)
    {
        _provider = provider;
    }

    protected override Task<HttpResponseMessage> SendAsync(
            HttpRequestMessage request, CancellationToken cancellationToken)
    {
        var httpContextAccessor = _provider.GetService(typeof(IHttpContextAccessor)) as IHttpContextAccessor;
        var tenantId = httpContextAccessor.HttpContext.Items["x-tenant-id"] as string;

        request.Headers.Add("x-tenant-id", tenantId);

        return base.SendAsync(request, cancellationToken);
    }
}

// Usage
public void ConfigureServices(IServiceCollection services)
{
    //...other dependencies
    
    services.AddHttpClient<ICustomerRepository, CustomerServiceAgent>(opts =>
    {
        opts.BaseAddress = new Uri("someUrl");
    }).AddHttpMessageHandler(() => new TenantMessageHandler(services.BuildServiceProvider()));
}