Such behavior is observed when you set the VisibleOnPageLoad property of the RadWindow on the server and do not reset it, so after the next postback you add yet another instance and both show up. The following article explains how to open a RadWIndow from the server and how a script registration is a better approach in most cases: http://www.telerik.com/help/aspnet-ajax/window-troubleshooting-opening-from-server.html.
Also, when creating RadWindows dynamically, it is better to do this on the client and not on the server: http://www.telerik.com/help/aspnet-ajax/window-programming-opening.html in order to benefit from the client-side windows creation the control offers, by reducing postbacks and server controls creation.
Last, but not least, I advise that you examine this demo that shows how to achieve a nearly identical scenario by attaching some client-side handlers: http://demos.telerik.com/aspnet-ajax/controls/examples/integration/gridandwindow/defaultcs.aspx?product=window.
Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.