Как правильно спроектировать простое приложение?
Круто выглядит. 
В общем по поводу расположения. Есть такая вкладка layout, используй компоненты из нее для компоновки. 
Также смотри в сторону свойства Dock, Оно позволяет привязываться к вышестоящему контейнеру. 
Внешний вид. К сожалению WinForms сильно ограничен внешним видом контролов, хотя custom render есть, возможно стоит перейти на WPF. 
Фильтр обычно делается на основе пользовательского контрола. Внутри обыкновенный текст бокс, кнопка с лупой, кнопка очистки. 

Наружу выведены 
Items - Bindable  collection  список  элементов для фильтрации
Query - введенный запрос
QueryChanged - событие возникающее при изменении запроса
QueryItemSelected - Выбор элемента из списка
 Просмотрел много примеров и книг, но все равно - как правильно спроектировать приложение?сомнения уходят с практикой. а вообще слова для гуглежки (или при просмотре оглавления умных книг) проектирование, архитектура, дизайн (тут как синоним архитектура), и дизайн (тут пользовательский опыт aka user experience (UX)) но в общем случае, не надо пытаться увязывать поиски по этим словам с названием конкретного ЯП (C#) выдача будет похуже
Какие компоненты использовать, как удобнее располагатьэто уже в зависимости от задуманного UX. да, его надо сначала вообразить, а уже потом реализовать. но не наоборот ;))

удачи! ))