Generically call static methods
To be honest it's hard to follow with such abstract class names and POC.  The root of what you are describing is you have a factory method to create one of your classes.  Lucky for you it seems all the factory methods have the same method signature.  We can make this a bit easier.

Need to store the factory methods in a private field to be used by the Init method.  Also adding a "helper" method to make storing the factories easier. 

public abstract class BO&lt;TConfig&gt; where TConfig : BOConfigBase
{
    protected TConfig Config { get; set; }
    internal List&lt;BC&gt; _BCs { get; set; }
    private Func&lt;BOConfigBase, BC&gt;[] _factories = new Func&lt;BOConfigBase, BC&gt;[0];

    protected void SetFactories(params Func&lt;BOConfigBase, BC&gt;[] factories)
    {
        _factories = factories;
    }

    public void Init()
    {
        _BCs = _factories.Select(b =&gt; b(Config)).ToList();
    }

    public void Process() =&gt; _BCs.ForEach(bc =&gt; bc.Process());
}


Now BOOne class can call it like 

public class BOOne : BO&lt;BOConfigOne&gt;
{
    public BOOne(BOConfigOne config)
    {
        Config = config;
        SetFactories(BCA.Init, BCB.Init, BCC.Init, BCOneA.Init);
    }
}


I'm assuming each BO class would take different BC classes if not then you could constructer inject all the factories.