I want to create form as a local variable in a procedure and then open it in a design mode so I can add components to it. Is this possible or do I have to create whole new unit to do this?
The IDE form-designer can only handle a form created it its own unit. So yes, you need a "whole new unit", as you put it, assuming you have not already created it.
The best place for your procedure with the local variable to go is a separate issue. Obviously, if it is a method of another form, it will need to be in that other form's unit, but otherwise it should in in wherever is the best place for it, "best" taking account of considerations like maintainability, clarity, logical organisation, etc.