I have a form that i want to always be on top whenever it is opened in the application but i dont want it to be on top when the main form is minimized or another application is
You are looking for an owned window. It is always on top of the owner and it gets minimized along with the owner. Good examples of owned windows are the various helper windows inside Visual Studio. You can undock them but they'll always stay on top of the VS main window.
You create an owned window by displaying it with the Show(owner) overload. Or by explicitly assigning its Owner property.