Consider utilizing C# for the webpart feature implementation. Begin by creating an empty project and then add a non-visual webpart to it. Use the C# object model to interact with the SPList object, employing a foreach loop to display the values in your navigation bar.
The challenge with C# arises when updating the feature with a different solution version number unless you are adept at handling the feature upgrade process. The previous version of the webpart instance might remain stuck in WP zones within ASPX files where they are stored. I recommend maintaining solutions at version 1.0 and including a build version number in the feature description that will appear in the features list under Site Settings.
If you opt for JavaScript for your web part feature, follow a similar approach by starting with an empty project and adding a non-visual webpart to it. Access the web service to retrieve items from the specific navigation list. Visual Studio will generate a strongly named class for the SP site housing the list's definition. Remember to refresh the web service and update this class if the navigation list undergoes any changes.
When your web part executes, the web service will run as the logged-in user. Ensure all visitors possess view rights or establish an Active Directory service account to invoke the web service. After receiving XML data via JavaScript, utilize a parser like Lync to XML to extract the information and display HTML content in the navigation bar.
Ultimately, choosing between C# and JavaScript boils down to personal comfort. In SharePoint 2013, consider developing a SP app instead of a farm feature to solely utilize JavaScript and web services.