Вам не нужна динамика для этого. Поместите chkCategory1 - 12 в массив и обведите его циклом for. Я бы посоветовал вам держать его в поле и инициализировать во время создания формы, потому что chkCategory, похоже, связан. Но если вы хотите простой пример того, как сделать это с помощью этого простого метода, то это будет примерно так:
private void frmFilter_Load(object sender, EventArgs e)
{
var chkCategories = new [] { chkCategory1, chkCategory2, chkCategory3, .......... };
for(int i = 0 ; i < chkCategories.Length ; i++ )
chkCategoies[i].Text = categories[i];
}
Вы знаете больше о приложении, поэтому, возможно, вы могли бы избежать записи всех имен элементов управления - например, если они помещены в общий родительский элемент управления, то вы можете найти их, просмотрев его дочерние элементы.