How to create Dynamic fields (like the email field)

I noticed in Leads that the email field has a ā€œ+ā€ next to it which allows you to add more email field inputs. I would like to add this function to existing fields and custom fields. Ideally I would like to create an extension or module for this. Any ideas where I can start looking at the code for this or if anyone has done this before? A company called Midland Web Company created a module - its on utube - but its not available anymore but this is what I’m trying to do.