Sıfırdan istiyorsanız Linux from scratch'a bakın.
Yoksa Arch linux, Debian, Gentoo vs gibi bir distroyu seçip istediğiniz programlar yüklü gelecek şekilde bir .ISO dosyası oluşturabilirsiniz. Taban distronun paket yöneticilerini (pacman, apt, portage vs gibi) kullanabilirsiniz ya da kendiniz sıfırdan bir server tutup güncel programları serverde saklayıp kendi paket yöneticinizi yazabilirsiniz de bence buna hiç gerek yok.
Benzer bir şekilde arayüzü de sıfırdan yazabilirsiniz. Yine hiç gerek yok. Onun yerine xfce gibi (daha iyi örneği vardır elbet) çok fazla özelleştirilebilir bir desktop environment seçip istediğiniz şekilde özelleştirebilirsiniz.
Kernel'i de kullanıma göre özelleştirebilirsiniz. Ya da zaten özelleştirilmiş zen kernel gibi bir şeyi kullanabilirsiniz. Mesela tinycore linux, kerneldeki zorunlu şeyler hariç hiçbir şey barındırmıyor.
Özetle distroyu distro yapan şey yüklü gelen programlardır. Kullanışlı bir distro oluşturmak istiyorsanız, ne için kullanışlı olacağına karar verin önce. Genel amaçlı Debian güzel mesela stabil olmasıyla. Arch linux güncel olmasıyla güzel, gentoo özelleştirilebilir olmasıyla ve paketleri derlemeyi kullanıcıya bırakmasıyla bir özgürlük sağlıyor. Slitaz küçük boyutuyla USB üzerinde veya ram üzerinde rahat çalışıyor vs gibi.
Ama siz bir distro yapalım gitsin derseniz Debian üzerine bir şeyler yapabilirsiniz. Tam olarak nasıl yapıldığını bilmiyorum ama özetle linux sisteminin parçalarını iyi bilmeniz gerekiyor ve çok fazla programlama bilgisi gerektirmiyor aslında.