It is possible to have 1000 elements on the map, but if they are displayed at the same time, then the rendering performance could be insufficient. We could propose using the dynamic layer feature to loading points by zoom level and region.
Please see the Using Dynamic Layer topic of our documentation and the Items Virtualization example.
The example uses different styles (colors) for items depending on the data (question #2). It uses the ContentControl element with different Control Templates. So, you can use any shapes inside the template (question #4).
The example uses WCF service to retrieve items that are displayed on the map. You can look at source code of service on your PC using the following path:
C:\Program Files\Telerik\RadControls for Silverlight Q1 2010\Demos\ExamplesWeb\RadMapDataService.svc.cs
You don't need to use kml. You can create a WCF service that will retrieve the necessary data from your DataBase (question #1).
About question #3 - I think if you use geocode service for each item when you retrieve your data, this process can take a lot of time. We tried to use geocode service this manner, but it took about 1 second per each request. I think it would be better to perform geocoding and add lat-lon location to your data table when the item is saved to your DataBase.
the Telerik team
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking
system and vote to affect the priority of the items.