Minimize and always-on-top depend on the WM you use. In NetWM-compliant WMs, your application will request no minimization button, and to stay always on top. In non-complicant WMs, the WM decides.
Not opening an application multiple times is usually done in your application code by using a lock file. See how Firefox, Opera, etc do so.