Ваша программа должна предоставлять плагину методы, при помощи которых он может построить интерфейс.
Т.е. весь гуй в основной программе, либы в основной программе, наружу торчит метод типа "Нарисуй окошко по разметке". Плагин дергает этот метод и передает туда свою разметку.
Вопрос за вопрос - какое значение у незанятых элементов массива?
Ответ - если вы не проинициадизировали массив значениями - то неизвестно (обычно).
Следовательно - заполняем массив чем то, что нам извезтно. Копируем туда cats. Считаем количество того, что нам известно, в цикле.
1) Надо жать или нет - решать вам. Может у вас там гигабитная локалка и критичность к производительности сервера/клиента. Или наоборот - GPRS.
2) Правильно - отдельный поток на отдельный коннект со всей логикой. ИМХО.
В компилятор НИКТО не встраивает редактор кода, компоненты и формы.
Да и вообще - большинство компиляторов - бесплатные.
А вот среды разработки - которые как раз и содержат все от 4 до 6 пункта - могут быть платные, да.
По факту:
вам нужен Qt. Это фремворк. Прожевывается многими компиляторами. И легко дружит с QtCreator в плане создания форм.
Сначала надо попрофилировать, на что конкретно уходит много времени.
Если именно на "обновление таблицы" (тобишь на выполнение SQL-запросов) - то переписывание ничего не даст - надо что то делат ьс базой или с запросами.