No está mal que quieras aprender a usar hilos de ejecución, pero lo primero que debes tener en cuenta es que no siempre es mejor. Es decir, dices que tu programa se cuelga porque usa muchos recursos: hacer que funcione en otro hilo no tiene por qué solucionar el problema. A veces (casi siempre, en mi experiencia) la solución es otra (mejor uso de la memoria, por ejemplo).
Pero como digo, no está mal que quieras aprender a usar hilos porque son útiles en muchas ocasiones, así que ahí va.
Lo más simple es usar la clase TThread. Es bastante simple: hay que extender la clase TThread para añadirle las propiedades (datos) que necesite, e implementar el método "Execute", que es el código que se ejecutará en paralelo. Aquí tienes
un ejemplo sencillito para iniciarte. Es algo viejo (de 2008), pero dudo que haya cambiado mucho la cosa. También tienes
esta conversación en la que se habla del tema.
Espero que te ayude a empezar.